如何递归调用ajax方法

如何递归调用ajax方法,ajax,jquery,grails,Ajax,Jquery,Grails,我的ajax调用有问题 在下面的代码中,页面加载时会自动调用pageReload()函数,该函数每10秒调用一次ajaxCall()函数 我通过ajax调用grails controller中的一个方法,方法是传递url中所需的参数。controller方法返回一个数组,该数组包含3个元素,即书的名称、作者和出版年份 <htmL> <head> <script type="text/javascript"> f

我的ajax调用有问题

在下面的代码中,页面加载时会自动调用pageReload()函数,该函数每10秒调用一次ajaxCall()函数

我通过ajax调用grails controller中的一个方法,方法是传递url中所需的参数。controller方法返回一个数组,该数组包含3个元素,即书的名称、作者和出版年份

<htmL>
    <head>
        <script type="text/javascript">

            function pageReload() {
                var timeInterval = setInterval('ajaxCall()',10000);
            }

            function ajaxCall() {
                jQuery.ajax({    
                    url: '/getBook?rowName=${row}&columnName=${column}',
                    success: function(data){
                        bookReturned(data);
                    },
                    error: function() {
                        alert('Error occured in AJAX call');
                    }
                });
            }

            function bookReturned(values){
                alert("Values are : "+values);
            }

            window.onload=pageReload;

        </script>
    <head>
 </html>

函数pageReload(){
var timeInterval=setInterval('ajaxCall()',10000);
}
函数ajaxCall(){
ajax({
url:“/getBook?rowName=${row}&columnName=${column}”,
成功:功能(数据){
返回的图书(数据);
},
错误:函数(){
警报(“AJAX调用中发生错误”);
}
});
}
返回的函数(值){
警报(“值为:”+值);
}
window.onload=pageReload;
每隔10秒,我就会收到控制器方法返回值的警报。但是控制器方法只在ajax的第一次调用中执行(我在控制器方法中给出了println,它只在控制台中显示一次)

如何在每次调用控制器方法时进行ajax调用以执行该方法

请在这方面帮助我,因为我是Grails和ajax新手


提前感谢。

正在缓存您的请求。将缓存选项设置为false

如果设置为false,它将强制请求的页面不被 浏览器注意:将缓存设置为false只能在 去接请求。它通过将“={timestamp}”附加到 获取参数。对于其他类型的对象,不需要该参数 请求,但在IE8中,当向已发布的URL发布帖子时除外 被一个GET请求

请参阅jQuery文档中的


尝试在请求的末尾添加一个timestamp参数,这样每当您有一个唯一的url时,也可以看看这个添加timestamp的方法。但仅在前三个请求中,我会以适当的间隔(10秒)获得打印。在那之后(从第四次请求开始),我不停地在没有适当间隔的情况下打印。一段时间后,“AJAX调用中出错”警报将继续显示。你能告诉我出了什么问题吗?error函数接受3个参数
函数(jqXHR,String textStatus,String errorshown)
你能显示你得到的错误类型吗?我尝试在bookReturned()函数中对警报进行注释。现在,对于前两个请求,ajax每10秒运行一次。然后它继续显示控制器方法中的打印,没有适当的间隔。您的控制器返回是否可能需要10秒以上?那里正在做什么样的任务?这很有效。但仅在前三个请求中,我会以适当的间隔(10秒)获得打印。在那之后(从第四次请求开始),我不停地在没有适当间隔的情况下打印。一段时间后,“AJAX调用中出错”警报将继续显示。你能告诉我出了什么问题吗?
jQuery.ajax({    
    cache: false,
    url: '/getBook?rowName=${row}&columnName=${column}',
    success: function(data){
        bookReturned(data);
    },
    error: function() {
        alert('Error occured in AJAX call');
    }
});