Sto lavorando a un'idea che non riesco a trovare una buona risposta anche se ore e ore di ricerca,
Sto pianificando una piccola applicazione Canvas / WebGL questa applicazione userà WebSockets per parlare con un server di gioco per sincronizzare i dati da e verso, quindi pensaci come un tipo di servizio MMO
quindi sto pensando di avere un sistema di accodamento per caricare le risorse PER ESEMPIO Faccio una richiesta per ottenere model1 e la sua texture in modo tale da farla quee
Mthd | Data | q | p | s
GET | /asset/model_1/model | 0 | 0 | 0
GET | /asset/model_1/texture | 0 | 0 | 0
GET | /asset/model_1/model | 1 | 1 | 0
GET | /asset/model_1/texture | 1 | 1 | 0
...
GET | /asset/model_1/model | 5 | 5 | 0
GET | /asset/model_1/texture | 5 | 5 | 0
chiave
q = quality modifier
p = priority lower is better
s = status '0 not started, 1 downloading, 2 complete'
quindi il mio cliente sta elaborando quel download però mentre questo sta succedendo un altro giocatore è entrato nella mia vista quindi ho bisogno di quel modello di giocatori e della texture così li aggiungo alla coda e finisco così
Mthd | Data | q | p | s
GET | /asset/model_1/model | 0 | 0 | 2
GET | /asset/model_1/texture | 0 | 0 | 2
GET | /asset/model_2/model | 0 | 0 | 0
GET | /asset/model_2/texture | 0 | 0 | 0
GET | /asset/model_1/model | 1 | 1 | 1
GET | /asset/model_1/texture | 1 | 1 | 0
GET | /asset/model_2/model | 1 | 1 | 0
GET | /asset/model_2/texture | 1 | 1 | 0
...
GET | /asset/model_1/model | 5 | 5 | 0
GET | /asset/model_1/texture | 5 | 5 | 0
GET | /asset/model_2/model | 5 | 5 | 0
GET | /asset/model_2/texture | 5 | 5 | 0
Ora voglio memorizzare questi file nella cache del browser, quindi sono legato all'uso del database e alla compressione usando qualcosa come LWZ, o mettendo le risorse online e usando appCache e caricandole.
Quindi le mie domande.
Se carico una risorsa tramite il browser normalmente (richiesta http) il browser manterrà quell'immagine nella memoria una volta che non sarà più visualizzata.
Se uso Javascript per contenere la stringa base64 dovrei quindi rimuovere la stringa dalla variabile javascript (cancella) so che libererebbe la memoria tenendo la stringa ma libererebbe tutta la memoria usata o il browser sarebbe ancora conserva una copia dell'immagine generata da base64 in memoria.
È possibile scrivere il caricamento del contenuto tramite WebSockets nell'appCache E.G la stringa base64 dal server WebSocket.
Qualcuno ha trovato un sistema di compressione delle stringhe migliore per Javascript diverso da LWZ ho intenzione di comprimere usando un'applicazione sul lato server, quindi l'unico limite di compressione è javascript che lo supporta.