javascript - 定期调用 AJAX 函数是否会减慢应用程序速度?

标签 javascript jquery ajax

在我的应用程序中的特定页面中,我连续使用 AJAX 函数调用,如下所示,

<script type="text/javascript">  
        $(document).ready(function(){   


            setInterval(function() {
                 $.ajax({  
                    url:'clmcontrol_livematchupdate',
                    type:'post', 
                    dataType: 'json',  
                    success: function(data) {  


                        $('#lblbattingteam').html(data.battingnow);
                        $('#lblscore').html(data.score);
                        $('#lblwickets').html(data.wickets);
                        $('#lblovers').html(data.overs);
                        $('#lblballs').html(data.balls);
                        $('#lblextras').html(data.extras);
                        $('#lblrr').html(data.runrate);

                        $('#lblbowlingteam').html(data.bowlingnow);
                        $('#lblbowler').html(data.currentbowler);
                        $('#lblbowlerovers').html(data.bowlerovers);
                        $('#lblbowlerballs').html(data.bowlerballs);
                        $('#lblrunsgiven').html(data.runsgiven);
                        $('#lblextrasgiven').html(data.extrasgiven);
                        $('#lblwicketstaken').html(data.wicketstaken);
                        $('#lblecon').html(data.econ);


                    }  
                });  
            }, 4000);
        });  
    </script>  

第一次尝试时,应用程序运行良好,并且值按照我的预期进行了更新,但经过几次尝试后,值很难更新,并且没有发生进一步的更新。是否是因为该函数由于连续的ajax调用而导致系统变慢?

最佳答案

最好不要使用 setInterval(),因为如果第一个请求尚未完成并启动另一个请求,您最终可能会遇到多个请求消耗共享资源并互相饥饿的情况。您可以通过等待安排下一个请求直到最后一个请求完成来避免此问题。

尝试一下:

(function ajaxInterval() {
      $.ajax({  
                url:'clmcontrol_livematchupdate',
                type:'post', 
                dataType: 'json',  
                success: function(data) {  


                    $('#lblbattingteam').html(data.battingnow);
                    $('#lblscore').html(data.score);
                    $('#lblwickets').html(data.wickets);
                    $('#lblovers').html(data.overs);
                    $('#lblballs').html(data.balls);
                    $('#lblextras').html(data.extras);
                    $('#lblrr').html(data.runrate);

                    $('#lblbowlingteam').html(data.bowlingnow);
                    $('#lblbowler').html(data.currentbowler);
                    $('#lblbowlerovers').html(data.bowlerovers);
                    $('#lblbowlerballs').html(data.bowlerballs);
                    $('#lblrunsgiven').html(data.runsgiven);
                    $('#lblextrasgiven').html(data.extrasgiven);
                    $('#lblwicketstaken').html(data.wicketstaken);
                    $('#lblecon').html(data.econ);


                },
                complete: function() {
                  // Schedule the next request when the current one has been completed
                  setTimeout(ajaxInterval, 4000);
                }  
            });
})();

关于javascript - 定期调用 AJAX 函数是否会减慢应用程序速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984615/

相关文章:

javascript - 根据属性值隐藏div?

javascript - 使用 jquery 中的文本值获取 li 的 id

javascript - 带有文件上传文本的弹出窗口

javascript - 为什么我的代码不使用 jquery 更改光标?

javascript - 获取单选按钮值(PhP MySQL 和 ajax)

javascript - 在 angularjs 服务中缓存数组

javascript - AngularJS - 将输入绑定(bind)到焦点

javascript - jQuery 如何 .slideUp() 当前图像

php - 无法使用 Ajax 以联系方式发送电子邮件

php - 如何使用 Woocommerce WC_AJAX 类