ran*_*dev 24 ajax jquery repeat
如何每10秒重复一次jQuery ajax调用?
$(document).ready(function() {
$.ajax({
type: "GET",
url: "newstitle.php",
data: "user=success",
success: function(msg) {
$(msg).appendTo("#edix");
}
});
Run Code Online (Sandbox Code Playgroud)
我试图用函数包装$ .ajax并用setInterval调用该函数
$(document).ready(function() {
function ajaxd() {
$.ajax({
type: "GET",
url: "newstitle.php",
data: "user=success",
success: function(msg) {
$(msg).appendTo("#edix");
}
});
}
setInterval("ajaxd()",10000);
});
Run Code Online (Sandbox Code Playgroud)
但它说"ajaxd没有定义"
bal*_*dre 49
你的方法不应该放在里面准备好方法,否则会只提供有,而不是外界.
$(document).ready(function() {
setInterval(ajaxd, 10000);
});
function ajaxd() {
$.ajax({
type: "GET",
url: "newstitles.php",
data: "user=success",
success: function(msg){
$(msg).appendTo("#edix");
}
});
}
Run Code Online (Sandbox Code Playgroud)
Wik*_*arz 10
更好的方法是使用setTimeout,因此您只在前一个请求完成时发出请求.
想象一下,由于某种原因(服务器故障,网络错误)的请求需要比定义的时间更长的时间.你会有很多同时发出的请求,这没什么好处的.如果您决定将未来的时间差从10个缩短到1秒,该怎么办?
$(function() {
var storiesInterval = 10 * 1000;
var fetchNews = function() {
console.log('Sending AJAX request...');
$.ajax({
type: "GET",
url: "newstitles.php",
data: {
user: 'success',
some: ['other', 'data']
}
}).done(function(msg) {
$(msg).appendTo("#edix");
console.log('success');
}).fail(function() {
console.log('error');
}).always(function() {
// Schedule the next request after this one completes,
// even after error
console.log('Waiting ' + (storiesInterval / 1000) + ' seconds');
setTimeout(fetchNews, storiesInterval);
});
}
// Fetch news immediately, then every 10 seconds AFTER previous request finishes
fetchNews();
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>Run Code Online (Sandbox Code Playgroud)
我知道,6年后.但是,我认为这对其他人来说是值得的.
值得注意的是,您的代码主要不起作用,因为您将ajaxd()函数调用作为字符串传递给setInterval.这不是一个好的做法,部分是因为setInterval期望全局定义功能.您应该使用对函数的引用,就像在我的示例中一样.这样,定义函数的位置和匿名与否都无关紧要.
$(document).ready(function() {
setInterval(function() {
$.ajax({
type: "GET",
url: "newstitle.php",
data: "user=success",
success: function(msg){
$(msg).appendTo("#edix");
}
});
}, 10000);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26204 次 |
| 最近记录: |