Javascript Ajax重新初始化
我有一个web应用程序,我正在向基于Ajax的工作流迈进。目前,我使用基于页面url的路由机制加载Javascript。为了跟踪Ajax的“页面”,我使用哈希标记。我遇到的问题是如何在内容更改时重新初始化页面?我可以重新运行路由机制,但我不想意外地重新创建和重新附加现有事件。我认为在理想的解决方案中,我会在Ajax完成后对所有事件执行全局清理,并重新初始化整个Javascript。这样,我就不必担心某个元素是否消失或是否已附加到某个事件或类似事件Javascript Ajax重新初始化,javascript,jquery,ajax,url-routing,Javascript,Jquery,Ajax,Url Routing,我有一个web应用程序,我正在向基于Ajax的工作流迈进。目前,我使用基于页面url的路由机制加载Javascript。为了跟踪Ajax的“页面”,我使用哈希标记。我遇到的问题是如何在内容更改时重新初始化页面?我可以重新运行路由机制,但我不想意外地重新创建和重新附加现有事件。我认为在理想的解决方案中,我会在Ajax完成后对所有事件执行全局清理,并重新初始化整个Javascript。这样,我就不必担心某个元素是否消失或是否已附加到某个事件或类似事件 此问题的最佳解决方案是什么?您可以使用jQuer
此问题的最佳解决方案是什么?您可以使用jQuery的hashchange事件:
$.on("hashchange", init);
使用init
作为路由函数或初始函数
以下是我使用的示例:
function route() {
var loc = (location.hash && location.hash.split("#")[0]) || location.pathname;
if (loc.search("profile") !== -1) {
// do profile page stuff
}
if (loc.search("home") !== -1) {
// do home stuff
}
}
$.on("hashchange", route);
您可以使用jQuery的hashchange事件:
$.on("hashchange", init);
使用init
作为路由函数或初始函数
以下是我使用的示例:
function route() {
var loc = (location.hash && location.hash.split("#")[0]) || location.pathname;
if (loc.search("profile") !== -1) {
// do profile page stuff
}
if (loc.search("home") !== -1) {
// do home stuff
}
}
$.on("hashchange", route);
如果不传递任何参数,只调用一个函数,可以将其简化为('hashchange',route')上的
$
因为匿名函数包装器对您没有任何帮助。如果您不传递任何参数,而只调用一个函数,则可以将其简化为('hashchange',route')上的$代码>因为匿名函数包装器对您没有任何帮助。