我们有一个单页面应用程序,可根据查询字符串加载结果。
查询字符串如下所示: ?城市=德里&安培; PN = 1
SPA在同一网页上有不同的部分。当用户导航到这些部分时,我们使用哈希更改来维护历史记录。例如: ?city = Delhi& pn = 1#sort:显示SPA的排序参数部分。 ?city = Delhi& pn = 1#filters:显示SPA的过滤部分。
我们现在计划使用网址中的哈希更改来删除维护历史记录,而是开始使用html5历史记录api。
如何使用历史插件替换这些哈希并执行相同的功能?
我尝试了一个+号,例如(?city = Delhi& pn = 1 + sort)。但看起来用户不能将此书签,并且页面会因为api不处理+符号而中断。 +符号在ajax api请求中被视为空格。
优雅地处理它的其他可能性是什么?
答案 0 :(得分:1)
对查询字符串上的数据进行编码的标准方法是添加另一个key = value对。
?city=Delhi&pn=1&sort=true
请注意,如果您使用的是历史记录API,那么您应该拥有能够生成与JavaScript相同的视图的服务器端代码。
e.g。
/
并获取服务器提供的主页/?city=Delhi&pn=1&sort=true
链接,Ajax将页面转换为另一页。/?city=Delhi&pn=1&sort=true
这意味着: