如何修复“停止运行此脚本?”提醒这段代码?

时间:2012-01-06 11:25:48

标签: javascript devexpress

运行此代码时会显示警报。 filtereditem是DevExpress listboxcontrol。 existingItems是一个包含247个项目的数组。

function GetMessage(){
    var deletedItems = '';
    var count = existingItems.length;
    for (var i = 0; i < count; i++) {
        var item = existingItems[i].text;
        if (!filtereditem.FindItemByText(item)) {
            if (deletedItems != '') {
                deletedItems = deletedItems + ', ' + item;
            }
            else {
                deletedItems = item;
            }
        }
    }
    return deletedItems;
}

2 个答案:

答案 0 :(得分:2)

“停止运行此脚本?”通常会触发警报,因为您的某些脚本代码需要很长时间才能执行。

假设通过调用您已提供代码的{​​{1}}函数触发警报,我可以为您提供以下建议:

此功能中有GetMessage循环。这可能需要很长时间,这有三个不同的原因。

1)循环的每次迭代都需要很长时间。

2)可能会有太多迭代,因此即使每次迭代只需要很短的时间,整个循环也需要很长时间才能执行。

3)虽然循环的大多数迭代只需要很短的时间来执行,但循环变量for可能有一些值,循环中的代码会冻结或占用很长一段时间。

您可以使用JavaScript i方法来帮助自己确定处理这三种情况中的哪一种。 http://www.w3schools.com/jsref/jsref_gettime.asp

答案 1 :(得分:0)

感谢所有有价值的建议。

我能够解决这个问题,问题在于 FindItemByText()方法,我将其替换为 FindItemByValue(),现在它正常工作。