当前位置: 首页 > 面试题库 >

AJAX和浏览器后退按钮

公良玺
2023-03-14
问题内容

我在www.darknovagames.com上运行了基于浏览器的游戏。最近,我一直在努力使用CSS重新格式化该网站,试图让其所有页面都根据HTML标准进行验证。

我一直在想着要在页面左侧放置AJAX导航菜单的想法(而不是每次都将用户带到一个单独的页面,而是需要重新加载标题和导航栏,而这几乎是不会改变的),我知道如果这样做,我可能会破坏浏览器中的“前进/后退”按钮。我的问题是,我应该继续使用AJAX网站,从而要求用户使用网站导航来玩游戏,还是应该离开网站目前的状态,并使用标准的超链接和东西进行导航?

我想问的原因是我在站点中构建了一个论坛系统,很多时候我想将发言链接到论坛中的特定主题。

我也乐于接受建议。是否有一种标准的方法(最好是没有传统框架的方法)仅重新加载网站的正文区域,同时仍更改URL,以便用户可以添加书签以及前进/后退等?那也有可能解决我的问题。我只是在这里寻求最佳解决方案,而不是对特定问题的答案。^ _ ^

谢谢


问题答案:

如果要启用AJAX,则不要以使网站上每个重要页面都具有可访问URL为代价。这是人们可以使用的可导航站点的基础。

当将所有功能都应用到AJAX调用和回调中时,基本上是在迫使用户进入一条单一的路径来访问他们想要的功能和内容,这完全与Web的工作方式背道而驰。人们依靠地址栏和后退按钮。如果您覆盖所有链接,从而使您的站点实际上是仅通过AJAX更新的单个页面,则将限制用户导航站点和查找所需内容的能力。它还使您的用户无法共享他们找到的内容(这是重点所在,对吧?)。

考虑用户对您网站的思维导图。如果他们知道他们是通过主页进入的,则他们去搜索东西,然后登陆游戏页面,然后开始玩特定的游戏,这是用户采取的四个不同的操作单元。他们可能在每个页面上都做了其他一些较小的,微不足道的操作-
但这是主要的单元。当他们单击“后退”按钮时,他们应该期望返回到其进入的路径。如果您通过AJAX调用加载所有这些页面,那么您将提供一个其功能与用户期望相反的网站。

将您的网站分解为每个重要功能(例如搜索,首页,个人资料,游戏-这取决于您网站的全部内容)。链接到这些页面的任何地方,都可以通过常规链接和静态URL进行。

AJAX很好。但是它的艺术是知道何时使用它,何时不使用。如果您遵循我上面概述的模型,那么您的用户将不胜感激。



 类似资料:
  • 问题内容: 如何禁用浏览器的“后退”按钮(跨浏览器)? 问题答案: 这个问题是非常相似,这一个 … 您需要强制缓存过期才能正常工作。将以下代码放在页面代码后面。

  • 问题内容: 从一个班级导航到另一个创建的历史记录时,我有两个班级。现在,我想通过提示用户提示是否要离开该页面。到目前为止,我尝试使用in,但不适用于退格按钮和浏览器后退按钮,它仅适用于关闭整个浏览器或特定的浏览器页面使用交叉。它也在重新加载。 我也尝试过使用Javascript,并且可以完美使用。 这是我使用的代码。 JAVASCRIPT: 还有gwt中的其他代码: 我希望在。 问题答案: 我已经

  • 问题内容: 您如何确定用户是否按下浏览器中的“后退”按钮? 您如何使用系统在单页Web应用程序内强制使用页内后退按钮? 到底为什么浏览器后退按钮不触发自己的事件!? 问题答案: (注意:根据Sharky的反馈,我提供了用于检测退格的代码) 因此,我经常在SO上看到这些问题,并且最近遇到了我自己控制后退按钮功能的问题。在为我的应用程序寻找最佳解决方案(带哈希导航的单页)几天后,我提出了一个简单的,跨

  • 问题内容: 我正在编写一个Web应用程序,该应用程序使用AJAX检索大量数据,该AJAX基本上根据用户单击的按钮修改了加载的页面(假设单击button1会将页面从state0转到state1,依此类推。) 此外,如果将按钮号作为GET变量传递给服务器,则服务器将返回正确状态的页面。 不用说,后退/前进浏览器按钮不起作用,因为在通过AJAX完成状态更改期间URL不会更改。 所以,我的问题是,如何使浏

  • 问题内容: 当用户登录时,将存储会话信息。当用户注销时,会话信息将被删除。但是当我点击浏览器的后退按钮时,会显示用户信息。由于会话已消失,但我们无法确定是否执行了用户登录操作。我该如何解决这个问题? 问题答案: 我用这种方法。首先创建一个实现Filter的类并重写doFilter()方法。doFilter()的代码是: 之后在web.xml中使用过滤器。这个过滤器就是这个。

  • 问题内容: 我正在用php做在线测验应用程序。我想限制用户再次参加考试。我尝试了以下脚本,但是它停止了我的计时器。我该怎么办? 我已经包含了源代码。计时器存储在cdtimer.js中 我有一个考试计时器,该计时器从 mysql 值中获取考试时间。计时器相应地启动,但是当我放入用于禁用后退按钮的代码时,计时器停止。我怎么了 问题答案: 有许多原因导致禁用后退按钮无法真正起作用。最好的选择是警告用户: