Autor Zpráva
Hnz
Profil
Dobrý den,

Měl bych jeden záludný dotaz. Osobně si myslím že žádné rozumné řešení neexistuje, ale raději se zeptám někoho zkušenějšího.

Jak je možné uložit client-site generovaná data pomocí javascriptu bez interakce serveru. Tzn. potřeboval bych vyvolat "Save dialog" a uložit si data generovaná javascriptem. Řešení by mělo fungovat ve všech prohlížečích (tzn. nelze použít IE only execcommand() nebo použít ActiveX, není možné použít ani Flash/FLex nebo Silverlight).

Save dialog potřebuji z následujícího důvodu. Vytvářím aplikaci která čte data ze serveru pomocí AJAXu a ukládá je do Web SQL Database (taky se Vám tak líbí tato nová možnost HTML5? :)). Nyní však potřebuji data nějak z databáze uložit na disk. Přes server je uložit nemůžu, protože jako server je použito jednoduché embadded zařízení, které by takové množství uložených dat nezvládlo.


Děkuji všem za jakýkoliv nápad
Honza
Chamurappi
Profil
Reaguji na Hnza:
ukládá je do Web SQL Database (taky se Vám tak líbí tato nová možnost HTML5? :))
Moc nelíbí, připadá mi to jako nadbytečná náhražka k již zaběhlému Local Storage.

Přes server je uložit nemůžu
To by bylo nejjednodušší. Nicméně napadá mě i jiná cesta, jak prohnat data rozhodovacím MIME mechanismem prohlížeče — pseudoprotokol data:. Mělo by jít přesměrovat návštěvníka na adresu data:application/octet-stream,cokoliv a prohlížeč by měl zareagovat stejně, jako při nalistování souboru obsahujícího cokoliv s hlavičkou Content-Type: application/octet-stream, tedy nabídnout otevření či stažení. Nepočítej ovšem se stoprocentní podporou.
Hnz
Profil
S tím data: je to zajímavé řešení. Určitě vyzkouším.

Chamurappi:
Moc nelíbí, připadá mi to jako nadbytečná náhražka k již zaběhlému Local Storage
Osobně si právě myslím, že se výborně doplňují. Použití Local Storage pro větší množství dat (struktury) je nešikovné, zatímco pomocí Web SQL je to nádherně řešitelní. Aneb na malé věci určitě použít Local Storage (je to mnohem pohodlnější než cookies), zatímco na složitější ukládání použít SQL.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: