Я стараюсь максимально избегать перезагрузки при просмотре страниц в моем мобильном веб-приложении.JQuery Mobile, похоже, предназначен для этого, но у меня возникают проблемы с укрощением этого поведения.
По сути, у меня есть две страницы (page1
и page2
).page1
имеет ссылку на page2
и наоборот.При первой загрузке обе страницы (i) загружают данные в ajax и (ii) соответственно изменяют структуру DOM.Я использую глобальный var
, чтобы избежать перезагрузки данных, который работает довольно хорошо.
Скажем, page1
(соответственно page2
) имеет структуру DOM, которая называется dom10
(соответственно dom20
) вHTML и dom11
(соответственно dom21
) после того, как все загружено.
Вот моя проблема:
Я загружаю page1
, данные загружаютсяи DOM изменяется с dom10
на dom11
Затем я нажимаю <a href="page2">click</a>
, page2
загружается, данные извлекаются и DOM изменяется с dom20
до dom21
.Пока все хорошо.
Затем я нажимаю <a href="page1">click</a>
, чтобы вернуться.Страница такая же, как я ее оставил с dom11
.Замечательно, не было никакого звонка GET
.
Я наконец нажимаю <a href="page2">click</a>
снова, и вот где это больно.Страница загружается снова (GET
вызов), данные не извлекаются, но dom возвращается на dom20
Я могу продолжать нажимать на кнопку вперед и всегдаполучить такое же поведение.Всякий раз, когда я нажимаю page1
, я получаю DOM так же, как и оставляю его, всякий раз, когда я нажимаю page2
, происходит GET
вызов, и DOM перезагружается.
Итак, вот мой вопрос:Есть ли способ предотвратить перезагрузку страницы, которая уже была загружена в jQuery Mobile?
Я могу придумать обходные пути, чтобы мой DOM был таким, каким я хочу, но я бы хотел избежать ненужных вызовов, замедляющих мое приложение.
Если вы хотите поиграть с этим, вы можете попробовать его там .
Большое спасибо за вашу помощь!
PS: Удивительно, я неТакое же поведение на Firefox и Chrome ... Боюсь, это не так просто.