我在www.darknovagames.com上运行基于浏览器的游戏。最近,我一直在努力使用CSS重新格式化网站,尝试根据HTML标准验证其所有页面。
我一直在想着让左边的AJAX导航菜单进入页面(而不是每次都将用户带到一个单独的页面,需要重新加载标题和导航栏,这几乎不会改变)我知道如果我这样做,我可能会破坏浏览器中的前进/后退按钮。我想我的问题是,我应该继续使用AJAX网站,因此要求用户使用网站导航来玩游戏,还是应该离开现在的网站,并使用标准的超链接和导航内容? / p>
我猜我猜的原因是我在网站上建立了一个论坛系统,很多时候我想把它们说成论坛中的特定主题。
我也愿意接受建议。是否有标准(最好没有传统框架)的方式只使网站的主体区域重新加载,同时仍然更改URL,以便用户可以书签和转发/返回等?这也可能解决我的问题。我只是在这里要求最好的解决方案,而不是特定问题的答案。 ^ _ ^
由于
答案 0 :(得分:34)
将ajax用于需要更新的页面部分,而不是整个部分。为此你应该使用模板。
如果您仍希望保留页面上各种状态更改的后退按钮,请将它们与#achors结合使用以更改网址(不强制浏览器发出另一个GET)。
例如,gmail看起来像这样:
mail.google.com/#inbox/message-1234
#之后的所有内容都是通过ajax发生的页面状态更改。如果我按Back,我会再次进入收件箱(再次,没有其他浏览器GET)
答案 1 :(得分:26)
如果您要启用AJAX,请不要以您网站上每个重要网页的可访问网址为代价。这是人们可以使用的可导航网站的支柱。
当您将所有功能都转换为AJAX调用和回调时,您基本上会强迫您的用户访问他们想要的功能和内容 - 这完全违背了Web的运行方式。人们依赖地址栏和后退按钮。如果您覆盖所有链接,以便您的网站基本上只是一个仅通过AJAX进行更新的网页,则会限制用户浏览网站并找到所需内容的能力。它还会阻止您的用户分享他们找到的内容(这是重点的一部分,对吧?)。
考虑用户的网站心智图。如果他们知道他们是通过主页进入的,那么他们会去寻找一些东西,然后他们登陆游戏页面,然后他们开始玩特定的游戏,这是用户采取的四种不同的行动单位。他们可能在这些页面上做了一些其他更小,更微不足道的行动 - 但这些是主要单位。当他们点击“后退”按钮时,他们应该回过头来看看他们进入的路径。如果您通过AJAX调用加载所有这些页面,那么您提供的站点的功能与用户期望的相反。
将您的网站分解为每个重要功能(即搜索,家庭,个人资料,游戏 - 这将取决于您的网站的所有内容)。您链接到这些页面的任何位置,都可以通过常规链接和静态URL进行操作。
AJAX很好。但它的艺术是知道何时使用它以及何时不使用它。如果你坚持我上面概述的模型,你的用户会很感激。
答案 2 :(得分:5)
结帐reallysimplehistory。维基已经有10个月没有更新,但我刚刚参加了Ajax Experience 2008,看到了Brian Dillard的presentation。他说0.8代码在他的硬盘上。希望它很快就可以下载。
答案 3 :(得分:5)
答案 4 :(得分:2)
使用时髦的Javascript技术解决这个问题的方法有很多种,通常涉及iframe,但我认为在这种情况下你需要质疑为什么要使用AJAX。它实际上是否会使网站更容易为用户使用?这听起来像你在使用它,因为你认为它很酷(这本身并不总是坏事),不是因为它实际上会为你的访客增加任何价值。从任何普通网站,正常的超链接文档几乎总是主导航的正确的东西。它是人们所期望的,我不建议你根据一些奇特的技术来打破这些期望。
AJAX很棒,可以让你做很多很棒的事情,更改网站导航不是其中之一。
为了解决这个问题已经做得很好,有很多网站在那里继续使用AJAX,甚至没有想到这个!
答案 5 :(得分:2)
答案 6 :(得分:1)
AJAX不是导航的最佳解决方案,正是您所描述的原因。与打破浏览器导航UI的麻烦相比,重新加载标题和导航栏的命中率极低。
更合适的AJAX示例是允许用户在主窗口中玩游戏,同时他们可以浏览导航窗格中的其他内容列表。您可以通过AJAX在导航窗格中加载其他项目,而不会影响游戏玩法。
答案 7 :(得分:0)
我坚持使用简单的超链接。您的页面家具不应占HTML的很大一部分,因此从页面请求中排除它不是一个很大的胜利。使每个资源可寻址(即,用户可能感兴趣的每个内容位的URL)是web的关键设计特征。这意味着缓存可以工作,并且意味着用户可以共享书签。它使谷歌工作,以及社交书签网站。
在我看来,在后续页面更改中刮掉几个HTML字节是不值得的。