javascript - 处理 AJAX 站点的哈希 URL 的更好方法

标签 javascript ajax html back-button history.js

除非这是 HTML 5,当 AJAX 加载额外的页面时,我可以轻松地使用 History.pushState() 来操作 URL,否则我发现处理在 URL 地址栏中使用哈希标记注册的页面很不方便。

例如,加载页面 item1.html。用户单击下一个项目 - item2.html 页面使用 AJAX 加载。地址在浏览器中更改为 item1.html#item2.html。

现在,当用户将此 URL 发送给 friend 或为其添加书签时,我想确保 item2.html 已加载。

方法 1) JavaScript 将 URL item1.html#item2.html 重定向到 item2.html。缺点:item1.html 加载完毕后会在重定向前闪烁一秒。

方法2)加载item1.html并隐藏item1内容,然后使用Ajax请求加载item2.html。缺点:item1 内容仍然可见(除非我将其隐藏为可见性无,这可能对 SE 不利)

更好的方法?一定有一个我缺少的很好的解决方案,许多大网站都实现了。

最佳答案

不要将 # 部分视为文件的 URL。这是页面所处的逻辑状态。

对你来说,我认为这意味着有一个 page.html,它本身可能没有真正的内容。然后你有 page.html#item1 和 page.html#item2 等。 url 总是一致的。您永远不会真正直接导航到 item1.html 或 item2.html。

关于javascript - 处理 AJAX 站点的哈希 URL 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8014052/

相关文章:

javascript - 为较小的屏幕 react 渲染 html

jquery - 在哪里可以练习进行 AJAX 调用?

javascript - 我似乎无法发布一系列对象

javascript - 下载文件后如何关闭引导模式弹出窗口

jquery - 单击列表项后如何关闭侧边菜单?

javascript - 如何动态创建多个Jquery颜色选择器(eyecon)?

javascript - 发出请求时 LoopbackJS 和 PostgreSQL 之间的连接出错

javascript - 数据角色中断 "for loop' 为什么

jquery - 在Here API(GEO FENCING)中动态传递路线路径和栅栏路径以跟踪目标

javascript - Google map 信息窗口按钮 onclick