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 检查?