Използване на History.js за axax. Работи чудесно, но съм объркан относно това, което се случва, когато потребителят отвърне, за да влезе отново в приложението ми

Използвам History.js и Jquery (и малко GWT), използвам метода History.pushState() за съхраняване на полезния товар на Ajax, след което в събитието statechanged рисувам екрана според полезния товар. Сега в моето приложение бутоните за връщане назад и напред на браузъра работят правилно.

Странното е, че когато потребителите щракнат върху връзка в моето приложение, която ги отвежда до страница, която е извън моето приложение (същия домейн, но друго приложение), те излизат, преглеждат страницата, след което натискат бутона за връщане назад, за да влязат отново в моето ап.

Приложението ми се зарежда, не получава popstate или събитие за промяна на състоянието, но по някакъв начин браузърът всъщност рисува екрана, за да прилича точно на това, което изглеждаше, преди да напуснат приложението ми.

Бих искал да разбера какво се случва тук.

[РЕДАКТИРАНЕ: Сгреших. Кодът ми се изпълняваше и получих промяната на състоянието. Имах някои предположения относно History.js и сега разбирам, че за да кодирате правилно, трябва да получите своя AJAX полезен товар, след което да извикате pushstate, за да го поставите в стека. Тогава вашето събитие за промяна на състоянието ще се активира и вие трябва във функцията за промяна на състоянието да прочетете състоянието от стека и да нарисувате екрана съответно. Същият код ще се изпълни, когато стартирате приложението си нормално, и същият код ще се изпълни, когато потребителят натисне бутона за връщане назад. ]


person Chris Mcnally    schedule 28.06.2013    source източник


Отговори (2)


Трябва да прочетете URL адреса и след това да се справите съответно. Това е същото, както ако правите дълбоки връзки към вашето приложение директно от адресната лента.

person offthat    schedule 28.06.2013

Изглежда, че браузърът показва кеширано състояние на приложението, вместо да го презареди напълно, когато потребителят използва бутона за връщане назад, за да се върне към приложението.

Можете да тествате това, като влезете в приложението, щракнете върху външната връзка към приложението, натиснете бутона за връщане назад на браузъра, за да се върнете назад и след това натиснете опресняване. Ако промени състоянието на приложението при презареждане, това ви казва, че браузърът е кеширал състоянието на приложението, вместо да презарежда.

person Mimi Flynn    schedule 28.06.2013