QUOTA_EXCEEDED_ERR v Mobile Safari

Pracoval jsem na aplikaci HTML5 pro nový trh Mozilla Marketplace a zároveň jsem psal tutoriál, který vám všem pomůže vytvořit a propagovat vaši webovou aplikaci využívající HTML5. Aplikace HTML5 používá localStorage k ukládání základní historie vyhledávání a také dalších novějších rozhraní API. Při testování mé aplikace na mém iPhone se mi zobrazila následující chyba:

localStorage.setItem("history", JSON.stringify(myObject));

Chyba způsobila rozbití mé aplikace, obnovení stránky a vykreslení aplikace k ničemu! Po chvíli zkoumání jsem zjistil, že důvodem chyby bylo, že bylo zapnuto soukromé procházení mého Mobile Safari. Očekávali byste tichou chybu, když je tento režim jeden, ale ne - prostě blokovaná aplikace. Vzhledem k tomu, že neexistuje způsob, jak zjistit, zda je prohlížeč uživatele zapnutý v režimu "Private Browsing" (detekce funkcí stále funguje), nejlepším řešením je zabalit nastavení localStorage do try {} / catch() {} bloky:

try {
	localStorage.setItem("history", JSON.stringify(myObject));
}
catch(e) {}

Lepší řešení momentálně nevidím. Protože nyní existuje způsob, jak sledovat soukromý režim a některé interakce se v tomto režimu přerušují, pomocí try {} / catch() {} bloky se jeví jako nejlepší řešení.