我有多个HTML页面和一个JavaScript文件,负责与服务器建立strophe
连接。我的所有HTML文件都使用相同的Javascript。但是,当我从一个页面移动到另一个页面时,connection
对象获得null
例如,我在对象global.js
的{{1}}文件中创建了一个连接
但是当我从一个HTML页面转移到另一个HTML页面时,MYPro.connection
变为空。
有没有办法使用JavaScript或jQuery保留对象?当我使用jQuery mobile它工作正常,但在简单的jQuery中,它不是那样工作。
注意: 出于某种原因,我没有使用jQuery mobile,只转向简单的jQuery
我正在进行的操作如下页面加载和卸载我正在调用MYPro.connection
conn.pause()
答案 0 :(得分:0)
我建议您使用HTML5
。您可以将数据存储在`localStorage中。即使在刷新页面之后以及多个页面之间也会保留数据。
我在JSFiddle上有一个localStorage
的工作示例。
简短的例子就在这里。
//Note that if you are writing a userscript, it is a good idea
// to prefix your keys, to reduce the risk of collisions with other
// userscripts or the page itself.
var prefix = "localStorageDemo-";
$("#save").click(function () {
var key = $("#key").attr('value');
var value = $("#value").attr('value');
localStorage.setItem(prefix + key, value); //******* setItem()
//localStorage[prefix+key] = value; also works
RewriteFromStorage();
});
function RewriteFromStorage() {
$("#data").empty();
for(var i = 0; i < localStorage.length; i++) //******* length
{
var key = localStorage.key(i); //******* key()
if(key.indexOf(prefix) == 0) {
var value = localStorage.getItem(key); //******* getItem()
//var value = localStorage[key]; also works
var shortkey = key.replace(prefix, "");
$("#data").append(
$("<div class='kvp'>").html(shortkey + "=" + value)
.append($("<input type='button' value='Delete'>")
.attr('key', key)
.click(function() { //****** removeItem()
localStorage.removeItem($(this).attr('key'));
RewriteFromStorage();
})
)
);
}
}
}
RewriteFromStorage();
希望它有所帮助...... !!!
答案 1 :(得分:0)
您必须存储RID(存储/ cookie /等)并在加载新页面时使用附加功能。不要忘记增加你的RID。
conn = new Strophe.Connection(xmppserver);
conn.attach(JID, SID, RID, onConn);