使用jquery,xml解析时出现“脚本堆栈空间配额已用尽”错误

时间:2011-02-23 02:41:48

标签: javascript xml

使用jquery,我的代码解析kml文件, 并从xml文件中获取信息。 代码如下:

    $.ajax({
        type:'POST',
        url: '/getKmlFile',
        data: {fname: "route.kml"},
        cache: false,
        dataType: 'xml',
        complete: function(data, status){
            console.debug("here");
            var startTime = $(data.responseText).find('TimeSpan > begin').text();
            .....
            .....
            $(data.responseText).find('LineString').each(function (index) {
                ....
            }
            ....
    });

问题是, firefox生成错误日志,“脚本堆栈空间配额已用尽”。 并在此行中退出执行:

var startTime = $(data.responseText).find('TimeSpan > begin').text();

我只是使用jquery默认选择器,并找到xml元素。 这就是我所做的一切。

kml文件大小不是很大,只有1.6Mbyte。

有什么方法可以避免这个问题吗? 使用另一个xml解析器? 请帮帮我~~~ :)

1 个答案:

答案 0 :(得分:1)

我重新解决了这个问题。

解决方案非常简单。

complete: function(data, status){    => success: function(data, status){ 

在完整的函数data.responseText是字符串而不是xml对象,但是,在成功函数中 data是xml对象。

以下代码应该是这样的,

$(data).find("...") ...                not, $(data.responseText).find("...") ...

所以,更少的记忆和非常有效的遍历〜

有趣的是〜^^;