最近在使用jQuery的load()方法加載數(shù)據(jù)時(shí),遇到了一個(gè)奇怪的問(wèn)題:load()方法會(huì)重復(fù)執(zhí)行。即使我在調(diào)用load()方法前使用了unbind()方法解綁了事件,仍然無(wú)法避免這個(gè)問(wèn)題。
我嘗試了各種辦法,包括使用on()方法綁定事件、使用off()方法解綁事件、在load()方法前使用stop()方法停止動(dòng)畫等等。但是這些辦法都沒(méi)有解決問(wèn)題。
最終,我在jQuery的官方文檔中找到了解決辦法。該文檔提到,load()方法會(huì)使用GET請(qǐng)求來(lái)加載數(shù)據(jù),而且GET請(qǐng)求會(huì)被瀏覽器緩存。因此,如果要避免load()方法重復(fù)執(zhí)行,可以在URL的末尾添加一個(gè)隨機(jī)參數(shù),以強(qiáng)制瀏覽器重新加載數(shù)據(jù)。
$(document).ready(function(){ var randomParam = "?" + Math.random(); $("#myDiv").load("data.html" + randomParam); });
這樣,每次調(diào)用load()方法時(shí),URL末尾的隨機(jī)參數(shù)都會(huì)被更新,從而避免了瀏覽器緩存的影響,解決了load()方法重復(fù)執(zhí)行的問(wèn)題。