我需要每隔几秒刷新一次textarea
元素。我的解决方案涉及使用jquery ajax调用$("#element").ready
内的控制器内的refresh方法。我希望在通话结束后,ready
事件将被重新启动,但遗憾的是,这不会发生。这是我的javascript代码:
$("#logTextArea").ready(function () {
alert("ready!");
setTimeout(reloadLogBox(), 5000);
});
function reloadLogBox() {
$.ajax({
url: '/json/AdminsStartUpdate/RefreshLogBox',
type: "Post",
success: function (response) {
alert(response);
$("#logTextArea").html = response;
}
});
}
和控制器方法(C#代码):
[HttpPost]
public JsonResult RefreshLogBox()
{//breakpoint here
//TODO : get log file contents
string logContents = "Lorem ipsum dolor sit amet " + DateTime.Now.ToString("hh:mm:ss");
return new JsonResult { Data = logContents };
}
如何正确完成?我稍微上网了,发现了on
解决方案Refire ready event after AJAX reload和其他几个类似的链接,但我不确定如何在我的特定情况下实现它。谢谢!
答案 0 :(得分:2)
我认为你应该在ajax调用的情况下使用函数pageload()
使用以下功能可能会对您有帮助,它会为我工作
setInterval(function() {
reloadLogBox();
}, 5000);
function reloadLogBox() {
$.ajax({
url: '/json/AdminsStartUpdate/RefreshLogBox',
type: "Post",
success: function (response) {
alert(response);
$("#logTextArea").html = response;
}
});
}
这样的话请参考以下链接
http://encosia.com/document-ready-and-pageload-are-not-the-same/
答案 1 :(得分:0)
试试这个
$("#logTextArea").ready(function () {
alert("ready!");
setinterval(reloadLogBox(), 5000);
});
就绪功能总是被调用一次。文本框在第一次加载时准备就绪。它不会再次加载。你只是在改变它。所以准备好再次被召唤。因此,使用setinterval()方法定期调用函数,而不是超时。或者你可以在调用完成时在ajax调用中使用递归,你可以在ajax调用中再次调用settimeout,以便在一段时间后重复自身。
答案 2 :(得分:0)
就绪事件只执行一次
详细了解this link。
现在,你需要的就是这个。
$(document).ready(
function () {
setInterval(function () {
alert("refresh!");
}, 500);
});
或强>
$("#logTextArea").ready(function () {
setInterval(function () {
alert("ready!");
}, 500);
});
答案 3 :(得分:0)
首先,您必须使用setInterval
而不是setTimeout
,因为您需要每隔几秒钟启动一次。请尝试以下代码;
$("#logTextArea").ready(function () {
alert("ready!");
setInterval(function () { reloadLogBox() }, 5000);
});
function reloadLogBox() {
$.ajax({
url: '/home/RefreshLogBox',
type: "Post",
success: function (response) {
alert(response);
$("#logTextArea").html(response);
}
});
}
$("#logTextArea").html = response;
应为$("#logTextArea").html(response);
。谢谢!