javascript – 如何在Dojo中保存过滤器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何在Dojo中保存过滤器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1970字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何在Dojo中保存过滤器](/upload/InfoBanner/zyjiaocheng/793/a5f8daa6f6754c1cbe372bd534d25170.jpg)
我有一个EnhancedGrid,用户经常使用复杂的过滤器.有没有办法允许用户保存或标记过滤器,以便将来可以轻松地重新应用它?我知道我可以通过编程方式设置过滤器,但我无法预测用户想要的过滤器.
谢谢!
编辑:自己做了一些进展…使用grid.getFilter()返回过滤器的JSON表示,然后使用json.stringify(jsonRepresentation)将其转换为字符串.现在我正在考虑如何存储,加载和转换该字符串的选项.将一个字符串加载到一个json对象然后应用它作为我的过滤器打开我的XSS漏洞?如果我想在url中将过滤器指定为参数,我可以压缩字符串以减少字符数吗?
解决方法:
马上,这是我看到的两个三种方法:
将过滤器存储在URL中(好)
只需获取window.location并使用dojo / io-query :: queryToObject()解析查询字符串:
require(['dojo/io-query'], function (ioQuery) {
var uri = window.location.href;
var query = uri.substring(uri.indexOf("?") + 1, uri.length);
query = ioQuery.queryToObject(query);
});
(Documentation for dojo/io-query)
将过滤器存放在cookie中(更好)
dojo / cookie模块非常简单:
require(['dojo/cookie', 'dojo/json'], function (cookie, json) {
var filter = { ... };
cookie("myFilter", json.stringify(filter)); //store the cookie
// json.parse(cookie("myFilter"));
// ^-- returns the cookie as a JS object
});
(Documentation for dojo/cookie)
显然,用户必须启用cookie才能使用它,但它比将一堆变量存储在URL中以便书签更清晰.
按照Dimitri M的建议使用HTML5本地存储:(更好)
检查用户的代理是否支持本地存储,如果是,请使用该全局变量来保留过滤器:
require(['dojo/json'], function(json) {
function supportsLocalStorage() {
return ('localStorage' in window) && window['localStorage'] !== null;
}
var filter = { ... };
if(supportsLocalStorage()) {
localStorage.setItem("myFilter", json.stringify(filter));
}
// json.parse(localStorage.getItem("myFilter"))
// ^-- returns the filter as a JS object
});
使用Web存储的一个优点是您可以存储much more data而不是cookies can.
您可以想象使用cookie作为不支持本地存储的浏览器的后备(即,当supportsLocalStorage()返回false时),代价是为您的设计增加触摸更多的开销,因此最终它是您的调用,具体取决于浏览器你想支持.
Browser Compatibility for Web Storage
内容总结
以上是互联网集市为您收集整理的javascript – 如何在Dojo中保存过滤器全部内容,希望文章能够帮你解决javascript – 如何在Dojo中保存过滤器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。