HTML5 на iPhone Safari - данные, хранящиеся в localStorage, не всегда сохраняются. Зачем?

Я пишу простое веб-приложение iPhone, используя HTML5 localStorage.
Тесты на устройстве 2G показывают, что данные, хранящиеся с использованием localStorage, не сохраняются после того, как процесс Safari был убит, хотя открытые окна Safari запоминаются.

Данные также теряются в случае, когда я нахожусь на другом сайте в другом окне Safari, затем я изменяю окно, в котором отображается веб-приложение в теме. Когда Safari загружает страницу, она автоматически обновляет страницу. Затем данные теряются. Это простой тестовый код:

<html>
<head>
    <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
</head>
<body>
<script>
    alert("1:" + localStorage.getItem("test"));
    localStorage.setItem("test", "123");
    alert("2:" + localStorage.getItem("test"));
</script>
</body>

Насколько я понимаю, данные должны сохраняться!
Может ли кто-нибудь пролить свет на это поведение? Что я должен сделать, чтобы заставить упорство работать?

Спасибо!
Том.

Ответ 1

Согласно Apple (http://developer.apple.com/safari/library/documentation/iphone/conceptual/safarijsdatabaseguide/Name-ValueStorage/Name-ValueStorage.html#//apple_ref/doc/uid/TP40007256-CH6-SW3), поддержка LocalStorage была добавлена ​​в Safari 4.0.

Согласно Wikipedia (http://en.wikipedia.org/wiki/Safari_version_history), Safari 4.0 был добавлен в iPhone OS 3.0.

2G iPhones не поставлялись с предустановленной ОС 3.0 или более поздней. Версия вашей iPhoone OS, скорее всего, слишком стар.

Ответ 3

Я попробовал свой код на iPhone 3G и Safari в Windows, и он работает. Может быть, вы используете более старую версию Safari на вашем iPhone?