Javascript函数正确工作8次,然后每隔一次
Javascript function works correctly 8 times, then every other time
我有一个javascript函数,我试图添加到我的文档,给它一种实时更新的感觉。它是对MVC控制器的AJAX调用,它返回一个JSON结果并将其添加到顶部的列表中,然后隐藏最后一个li,然后删除最后一个li。
问题是,这个功能完美地工作了8次,然后就出错了。在前8次之后,该函数只隐藏列表中的最后一项,每隔一次就在顶部添加一个。因此,在前8次运行之后,我的列表每运行一次脚本就增长1 li:
下面是我的函数:
<script type="text/javascript">
$(document).ready(function () {
function latestBranch() {
$.getJSON("Home/LatestWristband", null, function (html) {
var showHideSpeed = 200;
var firstLI = $("#recentBranches ul li").first();
if (firstLI.text() !== html) {
firstLI.before('<li>' + html + '<'li>');
$("#recentBranches ul li").first().hide().show(showHideSpeed);
$("#recentBranches ul li").last().hide(showHideSpeed / 4,
function () {
$("#recentBranches ul li").last().remove();
});
}
});
};
setInterval(latestBranch, 500);
});
</script>
我已经尝试了一些事情来让它工作。我的第一个想法是,这个间隔比脚本删除最后一个列表项的时间要快,但是我已经测试了这个间隔,get的间隔为5000,元素的hide/show的间隔为1000,这应该至少在下一次调用之前提供额外的3000ms。我也试过改变这个:
$("#recentBranches ul li").last().hide(showHideSpeed / 4,
function () {
$("#recentBranches ul li").last().remove();
});
:
$("#recentBranches ul li").last().remove();
然而,8次后我得到同样的问题。似乎在它进入这种每隔一次才工作的节奏之后,它就会无限期地保持下去。我试着四处看看,但我似乎找不到任何可以解释这些症状的东西…
您使用了错误的斜杠来关闭<li>
,这意味着您实际上为每个请求添加了2个<li>
。(第二个为空白)
改变这一行:
firstLI.before('<li>' + html + '<'li>');
:
firstLI.before('<li>' + html + '</li>');
相关文章:
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 设置随机数,然后每5秒随机减少一次,直到达到0(javascript)
- 显示数字,然后每5秒随机更改一次(javascript)
- 单击时预置图像 - 仅预置一次,然后停止
- 如何每 10 秒调用一次 JS 函数,然后以角度激活一个函数
- 为什么这个脚本只工作一次?只替换元素一次,然后再也不替换
- 做一件事,然后在react js中每隔15秒做一次
- 地图,rails 4.2,javascript,鼠标悬停,只工作一次(或两次).然后在重新加载之后
- 一次选中4个复选框,然后将页面重定向到新页面
- 其中是在ReactJS中放置一个值的最佳位置,该值由传入的初始参数计算一次,然后再也不会更改
- Flickity gallery - 如何循环浏览一次然后停止自动播放
- 引导 2 轮播循环一次,然后停止
- 如何使函数在 2 分钟后执行,然后每隔 2 分钟执行一次
- Javascript 这个关键字在原型函数中的递归执行一次,然后未定义
- 调用函数一次,然后设置间隔
- 然后,Jquery 加载内容每 2 秒刷新一次
- jQuery事件触发一次,然后再也不会触发
- 如何只运行一个函数一次,然后运行另一个依赖于相同元素的函数
- 在所有地方重复$(),或者声明一次然后重用