Javascript Chrome和Jquery奇怪的行为

Javascript Chrome和Jquery奇怪的行为,javascript,jquery,google-chrome,cross-browser,Javascript,Jquery,Google Chrome,Cross Browser,我必须创建一个显示2个表的简单jsp页面。已经有一个jsp页面生成了表,所以我所要做的就是使用不同的参数调用该页面,并将结果加载到不同的div中 我尝试的第一件事是调用2个JQuery加载: $(function() { $("#res_05").load("tableGenerator.jsp", { "RESOURCE_NAME": "<%= resName1 %>", }, function(re

我必须创建一个显示2个表的简单jsp页面。已经有一个jsp页面生成了表,所以我所要做的就是使用不同的参数调用该页面,并将结果加载到不同的div中

我尝试的第一件事是调用2个JQuery加载:

$(function() {
    $("#res_05").load("tableGenerator.jsp", 
        {
            "RESOURCE_NAME": "<%= resName1 %>",
        },
        function(responseText, textStatus, XMLHttpRequest) {
            var firstTable = $("#res_05 table table").first();

            $("#res_05").html(firstTable);
            $("<h1> Resource <%= resName1 %> </h1>").insertBefore("#res_05 table");
    });

    $("#res_15").load("tableGenerator.jsp", 
            {
                "RESOURCE_NAME":"<%= resName2 %>",
            },
            function(responseText, textStatus, XMLHttpRequest) {
                var secondTable = $("#res_15 table table").first();

                $("#res_15").html(secondTable);
                $("<h1> Resource <%= resName2 %> </h1>").insertBefore("#res_15 table");
    });
});
$(函数(){
$(“#res_05”).load(“tableGenerator.jsp”,
{
“资源名称”:“”,
},
函数(responseText、textStatus、XMLHttpRequest){
var firstTable=$(“#res_05 table”).first();
$(“#res_05”).html(第一个表格);
$(“资源”).insertBefore(“#res_05表”);
});
$(“#res_15”).load(“tableGenerator.jsp”,
{
“资源名称”:“”,
},
函数(responseText、textStatus、XMLHttpRequest){
var secondTable=$(“#res_15 table”).first();
$(“#resu 15”).html(第二个表格);
$(“资源”).insertBefore(“#resu 15表”);
});
});
这个简单的页面可以在Firefox甚至InternetePllorer8中使用,但在Chrome中,它的行为却很奇怪:它只显示第一个表

在第一次尝试之后,我将负载集中在一个函数中,然后再增加复杂性。 所以脚本变成这样:

$(function() {
    loadTable("res_05", "<%= resName1 %>");

    loadTable("res_15", "<%= resName2 %>");
});


function loadTable(divName, resName) {
        $("#" + divName).load("tableGenerator.jsp",
            {
                "RESOURCE_NAME": resName,
            },
            function(responseText, textStatus, XMLHttpRequest) {
                var firstTable = $("#" + divName + " table table").first();

                $("#" + divName).html(firstTable);
                $("<h1> Resource " + resName + "</h1>").insertBefore("#" + divName + " table");
        });
} 
$(函数(){
载荷表(“res_05”和“);
装载台(“res_15”和“);
});
函数loadTable(divName、resName){
$(“#”+divName).load(“tableGenerator.jsp”,
{
“资源名称”:resName,
},
函数(responseText、textStatus、XMLHttpRequest){
var firstTable=$(“#”+divName+“table table”).first();
$(“#”+divName).html(第一个表);
$(“资源”+resName+).insertBefore(“#”+divName+“表”);
});
} 
在这一改变之后,页面在所有浏览器上都能正常工作,即使是Chrome浏览器

这似乎是由Chrome错误的javascript解释造成的,但使用JQuery这应该是一种罕见的情况。 毕竟,即使在IE 8上也能正常工作,我没想到Chrome会有这样的表现


我不是JQuery方面的专家,所以如果这不是浏览器问题,我想了解在这种情况下会发生什么

对我来说,这就像是一种比赛状态。我怀疑您的第一次迭代发生了冲突,并通过您的修订得到了解决。我将尝试在
onSuccess
块中加载第二个
div
。您的JSP是否以非线程安全的方式使用全局变量?可能是这样,我调用的JSP非常复杂,包含的文件错综复杂,我对它的工作原理知之甚少。我不明白的是,如果有比赛条件,它是如何在修正后消失的?我在与以前相同的数据上测试了它,因此加载的表大小相同。