如果这是一个新手问题,我很抱歉,但我真的不知道该搜索什么。在浏览网站时如何保留上一页的内容?例如,Facebook上的右侧活动/聊天栏。转到不同的配置文件时似乎没有刷新;它不是一个iframe,似乎不是ajax(我可能是错的)。
谢谢,
答案 0 :(得分:3)
我相信你在Facebook上看到的不是实际的“页面加载”,而是聪明地使用AJAX或AHAH。
所以......想象你有一个网页。它包含链接。这些链接中的每一个都有一个“钩子” - 一个JavaScript块,当链接被点击时会被执行。
如果您的浏览器不支持JavaScript,则该链接的工作方式与旧版网页上的链接相同,并会加载另一个页面。
但是如果启用了JavaScript,那么钩子运行的代码不会导航到HREF,而是会将请求放置到另一个URL,该URL只会发出应该用来替换已经存在的DIV的HTML。显示在页面的某个位置。
如果JS不起作用,HTML中仍然存在真正的链接,因此您看到的HTML看起来应该如此。尝试在浏览器中禁用JavaScript并查看Facebook的工作方式。
这样的实时更新在Web 2.0应用程序中广泛应用,从Facebook到Google Docs到Workflowy到Basecamp等。“更好”的工具提供了可能的基础HTML链接,这样没有JavaScript的用户仍然可以获得满使用应用程序。 (这称为Progressive Enhancement or Graceful degradation,具体取决于您的观点。)当然,没有人会希望Google Docs在没有JavaScript的情况下工作。
答案 1 :(得分:2)
对于像Facebook这样的聊天,您必须在服务器端保存整个会话(例如在数据库中)。然后,当用户更改页面时,您可以恢复服务器端(使用PHP)的对话状态,或者像查询聊天(Javascript + AJAX)一样查询服务器。
答案 2 :(得分:0)
这不是在Javascript中完成的。它需要使用您的后端脚本语言来完成。
例如,在PHP中,您使用Sessions。服务器端脚本设置的变量可以在服务器上维护,并使用cookie绑定在一起(在多个请求/命中之间)。
答案 3 :(得分:0)
一个非常有用的技巧是在Firefox中运行HTTPFox,这样您就可以实际监控从一个页面浏览到下一个页面时发生的情况。您可以查看POST / Cookies / Response选项卡,并观察页面上类似AJAX的行为调用的Web方法。在执行此操作时,您通常可以推断出数据如何流入和流出页面,即使您本身无法访问服务器端代码。
至于你的具体问题的答案,有太多的列表方法(cookie,服务器端持久性,如会话或数据库写入,一个简单的表单POST,在.net中的VIEWSTATE等)。
答案 4 :(得分:-3)
您可以按 ctrl + shift + T 打开上次关闭的网页。现在您可以根据需要保存内容。示例:如果我关闭了与 document sharing 相关的网页,现在我正在旅行网页上。然后按ctrl + shift + T。现在我的上一个网页将自动打开。此功能适用于Mozilla,e explorer,opera等。希望这个答案对你有所帮助。