javascript - 如何避免自动加载清除用户正在编写的文本?

标签 javascript jquery ajax

我尝试构建一个类似 Twitter 的消息源。我使用 AJAX 每 10 秒更新一次提要。我的问题是,到目前为止,自动更新功能会在每次重新加载时更新整个提要。在用户开始写回复之前都可以。当下一次自动更新开始时,文本消失。

您知道如何防止这种情况发生吗?

这就是我自动加载页面的方式

function autoUpdate(div, url) {     
    $(div).load(url).fadeIn(200);  
}
$(document).ready(function()  {
    $.ajaxSetup({ cache: false });    
    autoUpdate('URL_TO_FEED_AS_HTML', '.discussion');   
    setInterval("autoUpdate('URL_TO_FEED_AS_HTML', '.discussion')", 10000); 
});

最佳答案

您可以检查输入字段是否为空,如果不为空,则不会自动更新。然后,当他们发布时,您将清空输入,并且自动更新将继续。

$(document).ready(function()  {
    $.ajaxSetup({ cache: false });  

    autoUpdate('URL_TO_FEED_AS_HTML', '.discussion');   
    setInterval(function() {
        if ($('input').val().length != 0) {
            autoUpdate('URL_TO_FEED_AS_HTML', '.discussion');
        }
    }, 10000); 
});

根据 Rory McCrossan 的建议,通过附加最新的讨论,您将获得更好的性能和功能。您可以通过查询比当前时间戳(上次查询时的时间戳,而不是查询结果之前的时间戳)更新的任何内容来完成此操作,然后使用append()将数据添加到页面上。

关于javascript - 如何避免自动加载清除用户正在编写的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23673816/

相关文章:

javascript - 错误 : SP. ClientContext().get_current throws uncaught typeError: undefined is not a function

javascript - KnockoutJS 中的下拉列表不具有约束力

javascript - YUI 按钮的 JQuery 等价物是什么?

javascript - 我可以在一个文档中写几个 ID,

php - 愚蠢的错误:无法加载资源:net::ERR_CACHE_MISS

javascript - 复选框选择运行 javascript 调用,但未获取所有值

javascript - W3.org 验证卡在一个内联 javascript 属性上,如何修复它?

javascript - c# 访问 dom javascript 生成的表单

javascript - 如何使用 jQuery 在动态添加的行上重新设置索引

javascript - 当我们使用ajax post请求上传文件时,如何取消向服务器上传文件并删除文件(上传未完成之间)?