脚本失控
Script is running out of control
我的观点发生了一些奇怪的事情。我正在将 Json 结果返回到我的视图以显示 ajax 调用的数据。如果我的数据.length==0,我正在尝试显示一条小消息
没有此标准的数据
我也在使用 $.blockUI(说请稍候),当我的 data.length = 0 时,我的页面仍然说请稍候......多年来,当我在Firefox中运行它时,我收到了消息
此页面上的脚本可能正忙,或者可能已停止响应
我的观点:
<script type="text/javascript">
//<![CDATA[
$("#GetReport").click(function () {
$.blockUI({
css: {
border: 'none',
padding: '15px',
backgroundColor: '#000',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .5,
color: '#fff'
}
});
$.ajax({
type: "POST",
url: theUrl,
data: { 'manufacturer': manufacturer, 'country': country, 'category': category, 'startDate': startDate, 'endDate': endDate, 'chartType': chartType },
dataType: "json",
success: function (data) {
//setTimeout($.unblockUI, 5);
var retailerNameArray = [];
var clicksArray = [];
var weekNoArray = [];
var rowTotalArray = [];
var weekArray = [];
var columnTotalArray = [];
var cumTotalArray = [];
var weekCounterArray = [];
var overallClickCountArray = [];
var resellerShareArray = [];
var retailerCount = 0;
//we want to include total in the chart
var weekNoArrayIncTotal = [];
var retailerNameArrayIncTotal = [];
var clicksArrayIncTotal = [];
var totalWeekCounter;
var weekNumberIncTotal = 0;
var counter = 1;
//if there is no data we do not want to display the graph etc
if (data.length == 0) {
$('#noData').show();
$('#chartContainer').hide();
$('#tableContainer').hide();
$('.exportData').hide();
}
//we need to add one more because of total but then 0 it
for (var i = 0; i < data.length; i++) {
var cumLeadrow = data[i];
// var y = 1;
//Only display on graph if not 0
}
});
});
//]]>
没有可用于指定条件的数据
一如既往,任何帮助将不胜感激。
如果data.length - l
或data.length - cc
小于0,则脚本将永远运行。
当你发布完整的代码时,你有一组while循环,如下所示
while (typeof weekCounterArray[data.length - l] == 'undefined') {
l++
}
如果有data.length - l < 0
那么它将保持负数,任何用负数索引的数组都会产生undefined
这将导致循环永远实际运行(实际上是因为它会在某个时候下溢,如果某个时候存在一个,它将回到有效范围)
这将发生在两种不同的情况下,最有可能的是data.length == 0
,因为l
被初始化为1
这将导致负索引。另一种不太可能的情况是,当您正在索引的数组具有从索引0
到索引data.length-1
的未定义值时,例如 [undefined,undefined,1,2,3,4]
将导致data.length == 2
几乎无限循环
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 借助asp.net验证或java脚本对多个文本进行验证
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- Java脚本时间添加
- 不显示带有本地json文件数据的谷歌地图脚本
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 从远程脚本获取用户IP
- 如何根据时间运行不同的脚本
- 如何将字符串值从php页面发送到java脚本页面
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 当脚本由system.js加载时,如何要求('electron')
- HTML标记在脚本标记中工作
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 显示时间的脚本
- ng应用程序使脚本无限运行
- 如何在运行时在angular 2中加载外部js脚本
- 脚本失控
- 递归java脚本函数-失控