以前の質問の後、DOM<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>
ただし、受け入れられた回答の作成者が言ったように、「他の方法があります[..] 1つの方法は、そのコードをすべてモジュールにラップすることです」。私は JavaScript の専門家ではありませんが、もう少し理解し、学びたいと思っています。
グローバル変数の使用を避けるために、そのコードをすべてモジュールにラップするにはどうすればよいですか?