随着RIA和SPA(或使用大量JavaScript的Web应用程序)变得越来越流行,我遇到了一些系统,它们不使用传统的超链接,而是使用带有JavaScript代码的构造来操作导航。这在图片方面尤为明显。例如,我们不会看到像这样的东西:<a href="some_url"><img src="...."/></a> <div ... onclick='SomeJsFunctionThatNavsToAnotherPage()'><img src="..."/></a> 这样做的优点是什么?调试或查找错误时,很难追踪页面转换到哪里。当目标导航可能发生变化时,我可以理解这个想法(因此,您可以使用计算函数来导航到哪个页面)。但是,即使要导航到的页面是恒定的,我仍然看到这种模式。我觉得这非常复杂和难以测试。更不用说总会有浏览器特定的错误,这些错误来自于过度复杂化前端。但是,我不是RIA / SPA开发人员(只是后端和传统Web开发)。我错过了背后的原理吗? 澄清 我的问题不是针对我们想要重新绘制页面或在不改变当前位置的情况下更改当前内容的情况。我的问题是针对普通的页面转换,从页面A到页面B。 在这种情况下,为什么要使用onclick=funcToChangeLocation()而不是<a href="some location"/>。 当我调试已经编写好的系统时,这对我来说是一个痛点(因为我不会像那样编写它们),但可能有我不知道的原因。 再次强调,我的问题不是针对自己重新绘制而不改变浏览器位置的页面,而是针对从一页导航到下一页的情况。 同样 如果您要投票关闭此问题,请至少留下一条消息解释原因。
如果您正在开发一个Web应用程序,有时您不想将用户重定向到另一个页面,而是想在不刷新页面的情况下动态更改页面内容。这样做有一些优势。它可以更快地加载页面。您可以轻松地保持页面/应用程序的状态。您没有义务与服务器通信。您只需更新页面的某个部分即可。您还可以动态请求数据以打印页面。如果您正在显示用户资料页面,您只需请求代表该用户的Json对象。该Json对象比整个页面要小,并且将在动态渲染中使用。在您的带宽受限时,它有助于减少用户与服务器之间的数据传输量。编辑:在简单页面重定向的情况下,我认为这是一个不好的实践,我看不到任何优势。当Google爬虫尝试解析网站时,我认为它使网站变得混乱。