某些浏览器在页面返回时不保留附加的 AJAX 内容
我开发了一个 AJAX 搜索组件来查询 Google Search Appliance。它对 php 脚本进行 AJAX 调用,从 GSA 获取 XML 并将其编码为 JSON,然后将其发送回浏览器。接下来,jquery 模板插件会完成剩下的工作。该过程按其应有的方式进行。
但是,当我离开搜索页面(例如,单击结果链接)并稍后希望返回搜索结果时,IE 和 Chrome 不会保留搜索结果和您在页面上的位置,而 FF、Opera、 Safari 确实保留附加到 DOM 的 AJAX 内容以及您在 pae 上的位置。在 IE 和 Chrome 中,它本质上是回击并看到一个空白页面,没有任何结果。
浏览器的行为不同是否有原因? (当您返回页面时,某些浏览器会显示附加内容,有些则不会)
是否有一种简单的方法可以在没有某种类型的会话或状态或存储的情况下解决此问题?
谢谢
I have developed a AJAX search component to query a Google Search Appliance. It makes an AJAX call to a php script that grabs XML from the GSA and encodes it as JSON and sends it back to the browser. From there, the jquery template plugin does the rest. That process works as it should.
However, when I navigate away from the search page (e.g., click on a result link) and later wish to return to the search results, IE and chrome do not retain the search results and your position on the page, while FF, Opera, and Safari do retain the the AJAX content appended to the DOM and your position on the pae. In IE and Chrome, it is essentially hitting back and seeing a blank page w/ no results.
Is there a reason why the browsers behave differently? (some browsers show appended content when you go back to the page, some don't)
Is there a way to easy way to fix this without some type of session or state or storage?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的做法基本上是当您点击搜索时更改页面的位置而不实际重定向(例如: http://myurl.com/search.html#mysearchtext(urlencoded))
然后,
您在页面的 onload 事件中检查 url 中是否存在 #xxxxx,以及是否存在。进行搜索
有两个目的:
- 这样你的背部动作就会一直有效:P
- 这样您就可以直接链接您的搜索结果。
How i would do it is basically when you hit search your change the location of the page without actually redirecting ( ex: http://myurl.com/search.html#mysearchtext(url encoded))
Then you do your search.
On the onload event of your page you check for any #xxxxx in the url, and if one exists make the search.
It serves 2 purpose :
- This way your back action will work always :P
- This way you can link your search results directly.