函数根据设置间隔循环,但参数不同
function is looped according to setinterval but with different parameters
我有一个简单的问题,有一个带有参数emp_id的函数可以打开一个具有不同属性的聊天表单,我希望它每 10 秒自动刷新一次,现在它工作有点错误,因为有一个参数emp_id可以更改,一旦我更改它, 带有消息和表单的聊天刷新了两倍或三倍:)取决于你更改emp_id的次数,我希望我很清楚))无论如何,这是JavaScript函数:
function load_chat(emp_id) {
var url = "#request.self#?fuseaction=objects2.popup_list_chatform"
url = url + "&employee_id=" + emp_id;
document.getElementById('form_div').style.display = 'block'; AjaxPageLoad(url,'form_div',1,'Yükleniyor');
setInterval( function() {
load_chat(emp_id);
},10000);
}
有一个名称列表,一旦我单击其中一个,这个表单就会通过这个功能打开,但是如果我点击另一个用户,我的意思是如果我更改emp_id,它会刷新,上一个和现在的表单。 如何更改它,以便它仅刷新最后一个emp_id,而不是我更改的所有 ID
谢谢大家的帮助,我真的很感激!
这将很好地概括您正在做的事情。计时器 ID ( tid
) 保存在闭包内,因此当您调用load_chat
时,如果有一个正在运行,它将停止间隔。
设置新 url 后,它将再次启动间隔计时器。
var ChatModule = (function() {
var tid,
url;
function refresh()
{
AjaxPageLoad(url, 'form_div', 1, 'Yükleniyor');
}
return {
load_chat: function(emp_id) {
if (tid) {
clearInterval(tid);
}
// setup url
url = "#request.self#?fuseaction=objects2.popup_list_chatform"
url = url + "&employee_id=" + emp_id;
document.getElementById('form_div').style.display = 'block';
// load ajax
refresh();
// set timer
tid = setInterval(refresh, 10000);
}
}
}());
ChatModule.load_chat(123);
改用setTimeout
。每次执行函数时,它都会设置下一次执行(您也可以将其设置为条件):
function load_chat(emp_id) {
... // do something
if (condition_still_met)
setTimeout(function() {
load_chat(emp_id); // with same id
}, 10000);
}
load_chat("x"); // to start
或者你将不得不在load_chat
函数之外使用 setInterval。您可以在必要时清除间隔。
function get_chat_loader(emp_id) {
return function() {
... // do something
};
}
var id = setInterval(get_chat_loader("x"), 10000); // start
// then, somewhen later:
clearInterval(id);
相关文章:
- Javascript:用while循环在给定的count参数中重复一个字符串
- JS for循环来设置HTML对象参数
- 在 Javascript 中循环使用参数的过滤器
- 循环jQueryajax和传递参数的正确方式
- jQuery使用最后一个参数在Javascript循环中单击绑定函数
- 循环遍历数组,并在javascript中向sql查询添加参数
- 如何动态使用for循环,将具有不同参数的函数推送到数组中
- .eq()参数在循环中不起作用
- 循环变量作为异步函数调用中的参数
- 如何避免在将索引作为函数的参数发送时引用for循环中的最后一个索引
- 在Javascript中修改循环函数的参数
- 如何跟踪有序列表中的顺序,该列表具有一个循环列表项,提供不同的参数
- jquery每个带有参数的循环调用函数
- 从嵌套循环 Javascript 中的一个循环访问参数
- 函数根据设置间隔循环,但参数不同
- 将 for 循环参数传递到每个语句中
- 在 PHP 循环中调用 js 函数,同时将 php 变量作为参数传递给其中一个函数
- JavaScript循环承诺在参数中使用数组进行迭代
- 使用不同的参数在循环中调用 jQuery 函数
- 如何使用for循环将每个参数循环到newDate中