AJAX代码错误导致broswer崩溃

时间:2017-04-26 13:48:40

标签: javascript php ajax codeigniter

您好我已经编写了一个ajax脚本,它抓取不同的页面并在X时间内显示它们,然后切换到下一页。我使用setTimeout函数显示X时间量的页面。为了抓住每个页面,我在我的代码看到的数据库中创建了一个不同页面的列表,然后调用相应的php函数来获取数据。

似乎正在发生的事情是它导致firefox在几天之后崩溃,因为firefox似乎耗尽了内存。我的猜测是我的代码效率不高,但是我不确定如何使其更有效率,因此它不会使浏览器崩溃。任何帮助将不胜感激。这是我的代码:

<?php $this->load->view('includes/header'); ?>

<div id="result">
</div>

<?php $this->load->view('includes/footer');?>

<?php $displayName = $this->input->get('name');?>

<script type="text/javascript">
var views = [];
var cell = '';
var i = 0;
var display = <?php echo json_encode($displayName); ?>;
var timeOut = 0;

$(function get_data() {
    $.ajax({
    url: "get_display_data/"+display,
    type: "post",
    cache: false,
    success: function(data){
       views = JSON.parse(data);
      if (i >= views.display.length) {
          i = 0;
      } else if (views.display[i].view == 'Fabrication') {
               var loadUrl = "<?php echo base_url();?>/index.php/Cells/FabricationStatus/"+views.display[i].view + "/"+ "display1?name="+display;
               $("#result").empty().load(loadUrl+"#mainContent");
               timeOut = 60;
               i++;
      } else if(views.display[i].view == 'CYLPLNGLCMSH') {
               var loadUrl = "<?php echo base_url();?>/index.php/Cells/CYLPLNGLCMSHStatus/"+views.display[i].view + "/"+display; 
               $("#result").empty().load(loadUrl+"#mainContent");
               timeOut = 60;
               i++;
      } else if(views.display[i].view == 'COTCTR') {
               var loadUrl = "<?php echo base_url();?>/index.php/Cells/COTCTRStatus/"+views.display[i].view + "/"+display;
               $("#result").empty().load(loadUrl+"#mainContent");
               timeOut = 60;
               i++;
      } else {
              var loadUrl = "<?php echo base_url();?>/index.php/Cells/Display/"+views.display[i].view + "/"+display;
             $("#result").empty().load(loadUrl+".mainContent");
              timeOut = 30;
              i++;
      }
       setTimeout(get_data, (1000 * timeOut));
    }
  });
});

0 个答案:

没有答案