首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX成功的JSON上的jQuery循环挂起,因为firefox一直在执行javascript

AJAX成功的JSON上的jQuery循环挂起,因为firefox一直在执行javascript
EN

Stack Overflow用户
提问于 2013-04-17 21:56:13
回答 1查看 628关注 0票数 1

关于这个问题:jQuery loop over JSON result from AJAX Success?

在返回太多的项目(新的div)之前,我有以下几点可以让Firefox消耗太多的cpu,其中只有一些“未定义”的文本,尽管我可以看到(在我使用的一个乱七八糟的页面上)我想要检索项目的方式(例如user.functionTitle)是正确的。这里出了什么问题?

代码语言:javascript
复制
var result = [{"id":7,
"loginID":"jdoe",
"userStatus":"ACTIVE",
"firstName":"John",
"middleName":"",
"prefix":"",
"lastName":"Doe",
"functionTitle":"Junior developer"},
{"id":8,
"loginID":"jadoe",
"userStatus":"ACTIVE",
"firstName":"Jane",
"middleName":"",
"prefix":"",
"lastName":"Doe",
"functionTitle":"Junior developer"}
];

下面的ajax语句,我试着用firebug来调试它,但是在"$.each(result,function(idx,user) {“这行之后,它就会挂起,直到Firefox告诉我某些javascript占用了太多的时间...

代码语言:javascript
复制
    $.ajax({
        type : 'POST',
        url : "../hrm/search",
        contentType : 'application/x-www-form-urlencoded',
        cache: false,
        data: "name=" + $("#site-search").val(),
        dataType : 'text',
        success : function(result) {
            if (result != null) {
                $.each(result, function(idx, user) {
                        $('#found-users').append("<div class='option'>" +
                            "<div class='pass-wrapper'>" +
                        "</div>" +
                            "<div class='sr-content'>" + user.firstName + " " + user.prefix + " " + user.lastName + "</div>" +
                            "<div class='sr-content'>" + user.functionTitle + "</div>" +
                        + "</div>");
                });
                $("#found-users").show;
            } else {
                 $('#found-users').hide;
                 $('#found-users div').empty();
            }

        }
    });

jsp页面中的代码看起来就像这样:

代码语言:javascript
复制
                            <div><input type="text" placeholder="search" id="site-search"></div>
                            <div id="found-users" class="search-results options">
                            </div>

首先:如果我把数据和下面的语句放在一个jsfiddle页面中,它会做它应该做的事情,它会弹出两次函数标题。当我将div添加到页面而不是弹出警告时,相同的代码怎么能执行两次以上呢?第二,为什么user.functionTitle突然返回undefined?

代码语言:javascript
复制
$.each(result, function(idx, user) {
        alert(user.functionTitle);
});
EN

回答 1

Stack Overflow用户

发布于 2013-04-17 22:43:48

解决方案非常简单:只需将dataType从文本更改为json,一切都会正常工作,否则each循环将自动处理传入的每个字符

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16062060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档