Jquery:仅当新内容不同时才替换内容

发布于 2024-11-09 03:46:23 字数 444 浏览 0 评论 0原文

我有一个 php 文件,在 ajax 中每 X 秒调用一次以刷新内容。这个php文件返回一个js文件,它必须改变div的html内容并产生效果。

但只有当新的不同时我才想更改此内容!另外,我有一个 div,即使内容相同,它也会刷新自己的效果!

我用这段代码进行了测试:

if ($('#mydiv').html()!=data_insertion) $('#mydiv').fadeTo("fast", 0, function () {$(this).html(data_insertion).fadeTo("fast", 1)});

但是这段代码不是跨浏览器的...事实上,我的 data_insertion 变量包含一些 html 内容。每个浏览器都会插入它,更改属性顺序等。这就是为什么 $('#mydiv').html() 永远不等于 data_insertion。

I have a php file which is called every X second in ajax to refresh a content. This php file return a js file wich must change the html content of a div with a effect.

But I would want to change this content only if the new is different! Else, I have a div which refresh itself with the effect even if it's the sames contents!

I tested with this code:

if ($('#mydiv').html()!=data_insertion) $('#mydiv').fadeTo("fast", 0, function () {$(this).html(data_insertion).fadeTo("fast", 1)});

But this code isn't cross browser... Indeed, my data_insertion variable contains some html content. And each browser insert it changing the attribut order etc. That's why, $('#mydiv').html() is never equal to data_insertion.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

游魂 2024-11-16 03:46:23

您可以使用附加到元素的本地结果缓存。
在你的 ajax 回调中执行如下操作:

if (jQuery.data($('#mydiv')[0], 'last_data_insertion') != data_insertion) {
    // Update DOM content
    $('#mydiv').fadeTo("fast", 0, function () {$(this).html(data_insertion).fadeTo("fast", 1)});

    // Reset the local cache
    jQuery.data($('#mydiv')[0], 'last_data_insertion', data_insertion);
}

You can use a local cache of the result, attached to the element.
In your ajax callback do something like:

if (jQuery.data($('#mydiv')[0], 'last_data_insertion') != data_insertion) {
    // Update DOM content
    $('#mydiv').fadeTo("fast", 0, function () {$(this).html(data_insertion).fadeTo("fast", 1)});

    // Reset the local cache
    jQuery.data($('#mydiv')[0], 'last_data_insertion', data_insertion);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文