javascript - 如何在 URL 查询字符串中存储程序状态?

标签 javascript jquery

如何读取、和写入查询字符串?

var pageNumber = QueryString['pageNumber'];
var pageSize   = QueryString['pageSize'];

$('#next').click(function() { 
    QueryString['pageNumber'] = ++pageNumber;
    refresh(); 
});

function refresh() { /** get data and update page here **/ }

当然,这将允许用户复制和粘贴包含部分程序状态的 URL。

是否有类似于QueryString(上面使用的)的API?

最佳答案

正如 Richard 提到的,通过分配给 window.location.search 来更改查询字符串将触发页面重新加载。

因此,通常的做法是在片段标识符中编码客户端状态(“哈希路由”,与旧版浏览器兼容)或使用 history.pushState 操作路径。 (HTML5 的一部分)。 PushState 需要服务器端支持,通常采用通配符路由的形式。

诸如Director之类的库或Backbone Router提供适用于任一技术的抽象。

更新 在研究这个答案之前我并不知道这一点,但可以通过 PushState 操作查询字符串(考虑到它是 URL 的一部分,这是有道理的)。作为 this demo 的作者指出,这允许使用 PushState 而无需任何特殊的服务器端支持。

关于javascript - 如何在 URL 查询字符串中存储程序状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16869033/

相关文章:

javascript - 简单的 Javascript 数学函数

javascript - 使用主干模板创建独特的 div

javascript - 下拉值在满足条件时重置为第一个值

javascript - Jquery keydown 函数

javascript - 如何更改绝对位置div的css属性与父div id

javascript - 为什么 bookmarklet 在 Twitter 上不起作用

javascript - 使用 JavaScript 自动登录

jquery - 提交前确认表单

javascript - 选中两个绑定(bind)复选框时显示重复值

javascript - 从函数内部声明一个全局变量