我似乎无法找到 dojox.storage 最近某处记录。在1.7 (AMD)dojox.storage
中坏了?似乎单元测试甚至不起作用。在 FF 或 IE 上的示例似乎根本不起作用。/dojo-release-1.7.2-src/dojox/storage/tests/test_storage.html
使用本地存储的推荐方法是什么?在我们的例子中,我们希望使用 HTML5 存储,当 cookie 存储不可用时,它会依赖于 cookie 存储。
我似乎无法找到 dojox.storage 最近某处记录。在1.7 (AMD)dojox.storage
中坏了?似乎单元测试甚至不起作用。在 FF 或 IE 上的示例似乎根本不起作用。/dojo-release-1.7.2-src/dojox/storage/tests/test_storage.html
使用本地存储的推荐方法是什么?在我们的例子中,我们希望使用 HTML5 存储,当 cookie 存储不可用时,它会依赖于 cookie 存储。
以下示例来自http://dojotoolkit.org/reference-guide/1.8/dojox/storage.html它适用于 Dojo 1.7 及更高版本。
dojo.require("dojox.storage");
var storageProvider=null;
dojo.addOnLoad(function(){
dojox.storage.manager.initialize();
storageProvider=dojox.storage.manager.getProvider();
storageProvider.initialize();
var myObject={key1:true};
storageProvider.put("myValue", myObject, function(status, keyName){
alert("value put in "+keyName);
});
});
根据http://dojotoolkit.org/reference-guide/1.8/dojox/storage.html和http://bugs.dojotoolkit.org/ticket/14465,dojox.storage 预计不会与 AMD 一起使用,并且不会暂时不会。
也就是说,这在 dojo 1.8.3 中对我有用:
require(["dojox/storage", "dojo/ready"], function (storage, ready) {
ready(function() {
var storageProvider = dojox.storage.manager.getProvider();
storageProvider.initialize();
var vals = storageProvider.get("InventoryMainSelectionHistory");
var i = 1;
});
});
至于DoJo 1.9.2,dojox.storage
test ( /dojox/storage/tests/test_storage.html
) 不起作用。经过仔细检查,它恰好是该特定代码中的初始化问题:
// wait until the storage system is finished loading
dojo.addOnLoad(function(){
// is the storage already loaded?
if(dojox.storage.manager.isInitialized() == false){
dojo.connect(dojox.storage.manager, "loaded", TestStorage, TestStorage.initialize);
}else{
dojo.connect(dojo, "loaded", TestStorage, TestStorage.initialize);
}
});
侦听器已注册等待在 dojo 上“加载”的事件,在较新的 DoJo 版本中未调用该事件。更改代码后:
dojo.addOnLoad(function(){
TestStorage.initialize();
});
FireFox 和 IE 10 中的示例函数(用于 LocalStorageProvider)。