Ho un grande dato in forma di oggetto JSON nel javascript. L'ho convertito nella stringa usando JSON.stringify(). Ora il mio caso d'uso è di fornire questa grande stringa in un file di testo all'utente. Quindi per questo ho scritto sotto il codice.Impossibile scaricare i dati di grandi dimensioni utilizzando javascript
codice HTML codice
<button id='text_feed' type="submit">Generate ION Feed</button>
<a href="data:attachment/txt" id="textLink" download="feed.txt"></a>
Javascript
var text = //huge string
$("#text_feed").click(function() {
_generateFeed(text);
});
var _generateFeed = function(text) {
//some code here
$("#textLink").attr("href",
"data:attachment/txt," + encodeURIComponent(text)) [0].click();
});
};
Problema: Quando la lunghezza della stringa è di piccole dimensioni, sono in grado di scaricare i dati. Ma quando la lunghezza della stringa aumenta (> 10^5), la mia pagina si arresta in modo anomalo. Ciò si è verificato perché "encodeUriComponet (text)" non è in grado di codificare i dati grandi .
Ho anche provato window.open("data:attachment/txt," + encodeURIComponent(text));
Ma ancora una volta la mia pagina ha fatto si è schiantato a causa della stessa ragione per cui encodeURIComponet era in grado di codificare uno stringa di grandi dimensioni come ad.
Un altro approccio: Pensavo anche di scrivere i dati in un file utilizzando HTML5 API di scrittura di file, ma ha il supporto solo in Chrome browser web, ma ho bisogno di fare questo lavoro per atleast Firefox e Chrome sia.
Use Case Io non voglio fare più download rompendo i dati, come ho bisogno di avere i dati in un unico file, alla fine.
E il mio obiettivo è quello di supportare una stringa di circa 10^6 di lunghezza. Qualcuno può aiutarmi a scaricare/scrivere questa quantità di dati in un singolo file.
ne dite 'URL.createObjectURL (nuovo Blob (testo, {type: 'text/plain'})); '- funziona? – CodingIntrigue
@RGraham D'accordo, prova la [Blob API] (https://developer.mozilla.org/en/docs/Web/API/Blob)! – Xufox
[Ecco una demo di questo] (http://jsfiddle.net/efLfqp3f/). Blob compila un megabyte di testo come se fosse niente. – Xufox