我使用jQuery和history.js来管理部分页面之间的动态转换;这样我就可以避免重新加载整个文档。其中一些部分页面调用它们自己独特的javascript文件。虽然页面之间的转换运行良好,但在调用它的部分页面被动态替换后,执行的javascript的残余仍然保持活动状态。
如何卸载通过动态页面加载引入的javascript,然后异步替换为另一个页面?
更精细的细节
主模板
我的主模板(用于所有页面)可以被认为是一个简单的:
<html>
<head>
<script>
//scripts to manage asynchronous loading of partial-pages into #content div
</script>
</head>
<body>
<div id="content"></div>
</body>
</html>
用户资料
在#content div中呈现的一个部分页面用于用户的Profile:
<script src="profile.js"></script>
<form>
<input type="file" name="profile-picture">
</form>
profile.js的内容类似于:
$(function() {
$('input').change(function() {
// upload profile picture asynchronously
});
});
用户设置
在主模板的#content div 中加载的另一个部分页面是用户的Settings:
<script src="settings.js"></script>
<form>
<input type="text" name="first-name">
<input type="text" name="last-name">
</form>
settings.js的内容类似于:
$(function() {
setInterval(function() {
// auto-submit form every 10 seconds
$('form').submit();
}, 10000);
}
});
问题
- 在调用它们的部分页面被另一个替换后,某些javascript函数会继续运行(例如setInterval )。
- 这种为每个部分页面加载新javascript的业务感觉很混乱;但对于我的生活,我找不到任何关于最佳实践的建议。
在允许每个部分页面的页面特定脚本的同时,实现动态部分页面加载/卸载效果的更好方法是什么?
谢谢!