【问题标题】: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> 

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

【问题讨论】:

    标签: javascript jquery prototypejs


    【解决方案1】:

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

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

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

    【讨论】:

    • 实际上基于我的代码,你能告诉我我需要编辑什么来完成它吗?
    猜你喜欢
    • 1970-01-01
    • 2012-12-28
    • 2011-10-05
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多