在我上一个问题之后,我提出了以下工作代码,旨在通过替换<div id="test_css_id">...</div>
自身来定期刷新 DOM。以下代码中出现的两个 AJAX 请求的行为是重新加载相同的代码本身。
<div id="test_css_id">
<a id="link_css_id" href="test_url.html">LINK</a>
<script type="text/javascript">
var refreshTimer;
$('#link_css_id').click(function(event) {
event.preventDefault();
$.ajax({
url: $(this).attr('href'),
type: 'PUT',
success: function(data) {
clearInterval(refreshTimer);
$('#test_css_id').replaceWith(data); // Replaces all code including JavaScript with the response data (note: the response data is exactly the same as the code shown here).
}
});
});
$(document).ready(function() {
function refreshFunction(){
$.ajax({
url: 'test_url.html',
type: 'GET',
success: function(data) {
clearInterval(refreshTimer);
$('#test_css_id').replaceWith(data); // Replaces all code including JavaScript with the response data (note: the response data is exactly the same as the code shown here).
}
});
}
refreshTimer = setInterval(refreshFunction, 1000);
});
</script>
</div>
但是,正如接受答案的作者所说,“还有其他方法可以做到这一点 [..] 一种方法是将所有代码包装到一个模块中”。我不是 JavaScript 专家,但我想进一步了解和学习它。
如何将所有这些代码包装到一个模块中以避免使用全局变量?