您好我已经编写了一个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));
}
});
});