jQuery 定期更新:如何检查获取的内容是不是与获取的旧内容不同

Posted

技术标签:

【中文标题】jQuery 定期更新:如何检查获取的内容是不是与获取的旧内容不同【英文标题】:jQuery periodical update : how to check whether content fetched is different from old content fetchedjQuery 定期更新:如何检查获取的内容是否与获取的旧内容不同 【发布时间】:2020-06-30 09:02:43 【问题描述】:

我正在尝试像 Prototypejs 一样实现 ajax.periodicalUpdater,但使用 jQuery。我的目标是,一旦页面加载,它将加载我放置在参数中的任何 url 的内容。

现在如果间隔秒后获取的内容与之前获取的内容相同,我想增加下一次检查的延迟以减少服务器负载。

这就是我所做的

     <div id="div_a_updater" class="div_a_updater">Mettre ici</div> 
 
<script>
 
function mettreajour_periodique(span_id, url_traitement, nos_parametres, our_frequency, our_decay, our_decay_to_reset)

 
jQuery(document).ready(function()
    
jQuery("#"+span_id).load(url_traitement);
    
setInterval(function()
jQuery("#"+span_id).load(url_traitement)
, our_frequency);
    
);
 
    

 

mettreajour_periodique('div_a_updater', 'brouillons_touse.php', '&membre=', 15000, 2000, 3600);

</script> 

如何检查获取的内容是否与获取的旧内容不同,如果获取的内容与获取的旧内容相同,如何增加延迟?

【问题讨论】:

【参考方案1】:

这里是how this is implemented in Prototype。大致步骤:

    decay 默认为 1(对间隔没有影响),但可以分配一个大于 1 的值。 请求端点并将响应分配给变量。 将响应与之前的响应(如果可用)进行比较。如果它们相同,则衰变乘以自身并分配回自身(指数增长)。如果它们不同,则将衰减设置回其原始值 下一个请求被安排为 interval*decay 之前的响应值会更新为最新的响应值 屏幕上的元素使用响应值更新 转到2

这里的关键要点是,您不想使用setInterval 来安排此操作,而是使用setTimeout,因为这允许您为每次请求之间的延迟获取一个新值。

【讨论】:

实际上基于我的代码,你能告诉我我需要编辑什么来完成它吗?

以上是关于jQuery 定期更新:如何检查获取的内容是不是与获取的旧内容不同的主要内容,如果未能解决你的问题,请参考以下文章

如何检查选择器是不是匹配 jQuery 中的某些内容? [复制]

XCUITest - 如何检查 webview 是不是已更新其内容?

如何检查是不是所有兄弟姐妹(包括选定的)都用 jQuery 检查?

ASP.net (C#)如何检查数据库内容是不是更新?

jQuery Ajax每个函数检查返回ID是不是与上一个相同

用jquery怎么检索表格里的内容与文本输入框的里内容是不是相等,相等的话数据所在的行变颜色显示