使用jQuery 1.7.1/eval/seq调用C#webservice/

使用jQuery 1.7.1/eval/seq调用C#webservice/,c#,jquery,asp.net,web-services,eval,C#,Jquery,Asp.net,Web Services,Eval,这就是问题所在。我有三个网页可以调用web服务。第一次登录页面并进行调用时,它工作正常,但是如果切换到第二个页面,它会尝试对错误的服务进行web服务调用。以下是一些信息: 页码: Page1.aspx - has Page1.js Page2.aspx - has Page2.js js文件: Page1.js var filterCriteria = ""; function GetList() { $.ajax({ type: "POST", ur

这就是问题所在。我有三个网页可以调用web服务。第一次登录页面并进行调用时,它工作正常,但是如果切换到第二个页面,它会尝试对错误的服务进行web服务调用。以下是一些信息:

页码:

Page1.aspx - has Page1.js
Page2.aspx - has Page2.js
js文件:

Page1.js

var filterCriteria = "";

function GetList() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page1.asmx/Page1List",
        contentType: "application/json; charset=utf-8",
        data: "{'letter':'" + filterCriteria + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function GetSearchResults() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page1.asmx/Page1FilteredList",
        contentType: "application/json; charset=utf-8",
        data: "{'searchCriteria':'" + $("#Search").val() + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function DisplayList(object) {
    var html = '';
    for (var i = 0; i < object.length; i++) {
     //format results and append
    }
    if (object.length == 0) {
        html += "<li class=\"filteredList\" style=\"padding: 10px;\">No Results Found</li>";
    }
    $("#Page1List").html(html);
}
var filterCriteria = "";

function GetList() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page2.asmx/Page2List",
        contentType: "application/json; charset=utf-8",
        data: "{'letter':'" + filterCriteria + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function GetSearchResults() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page2.asmx/Page2FilteredList",
        contentType: "application/json; charset=utf-8",
        data: "{'searchCriteria':'" + $("#Search").val() + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function DisplayList(object) {
    var html = '';
    for (var i = 0; i < object.length; i++) {
     //format results and append    
    }
    if (object.length == 0) {
        html += "<li class=\"filteredList\" style=\"padding: 10px;\">No Results Found</li>";
    }
    $("#Page2List").html(html);
}
<代码>var filterCriteria=”“; 函数GetList(){ $.ajax({ 类型:“POST”, url:“/webServices/Page1.asmx/Page1List”, contentType:“应用程序/json;字符集=utf-8”, 数据:“{'letter':'”+filterCriteria+“}”, 数据类型:“json”, 成功:功能(结果){ 显示列表(result.d); } }); } 函数GetSearchResults(){ $.ajax({ 类型:“POST”, url:“/webServices/Page1.asmx/Page1FilteredList”, contentType:“应用程序/json;字符集=utf-8”, 数据:“{'searchCriteria':'”+$(“#Search”).val()+“}”, 数据类型:“json”, 成功:功能(结果){ 显示列表(result.d); } }); } 函数显示列表(对象){ var html=''; 对于(变量i=0;i未找到任何结果; } $(“#Page1List”).html(html); } Page2.js

var filterCriteria = "";

function GetList() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page1.asmx/Page1List",
        contentType: "application/json; charset=utf-8",
        data: "{'letter':'" + filterCriteria + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function GetSearchResults() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page1.asmx/Page1FilteredList",
        contentType: "application/json; charset=utf-8",
        data: "{'searchCriteria':'" + $("#Search").val() + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function DisplayList(object) {
    var html = '';
    for (var i = 0; i < object.length; i++) {
     //format results and append
    }
    if (object.length == 0) {
        html += "<li class=\"filteredList\" style=\"padding: 10px;\">No Results Found</li>";
    }
    $("#Page1List").html(html);
}
var filterCriteria = "";

function GetList() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page2.asmx/Page2List",
        contentType: "application/json; charset=utf-8",
        data: "{'letter':'" + filterCriteria + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function GetSearchResults() {
    $.ajax({
        type: "POST",
        url: "/webServices/Page2.asmx/Page2FilteredList",
        contentType: "application/json; charset=utf-8",
        data: "{'searchCriteria':'" + $("#Search").val() + "'}",
        dataType: "json",
        success: function (result) {
            DisplayList(result.d);
        }
    });
}

function DisplayList(object) {
    var html = '';
    for (var i = 0; i < object.length; i++) {
     //format results and append    
    }
    if (object.length == 0) {
        html += "<li class=\"filteredList\" style=\"padding: 10px;\">No Results Found</li>";
    }
    $("#Page2List").html(html);
}
var filterCriteria=”“;
函数GetList(){
$.ajax({
类型:“POST”,
url:“/webServices/Page2.asmx/Page2List”,
contentType:“应用程序/json;字符集=utf-8”,
数据:“{'letter':'”+filterCriteria+“}”,
数据类型:“json”,
成功:功能(结果){
显示列表(result.d);
}
});
}
函数GetSearchResults(){
$.ajax({
类型:“POST”,
url:“/webServices/Page2.asmx/Page2FilteredList”,
contentType:“应用程序/json;字符集=utf-8”,
数据:“{'searchCriteria':'”+$(“#Search”).val()+“}”,
数据类型:“json”,
成功:功能(结果){
显示列表(result.d);
}
});
}
函数显示列表(对象){
var html='';
对于(变量i=0;i未找到任何结果;
}
$(“#Page2List”).html(html);
}
因此,两者都有相同的调用和相同的信息,唯一真正的区别是结果不同,它们对获得不同数据的不同web服务进行web服务调用

现在每次我在这两者之间切换,我都会得到一个新的js文件

jQuery-1.7.1.min.js/eval/seq/1
jQuery-1.7.1.min.js/eval/seq/2
jQuery-1.7.1.min.js/eval/seq/3
jQuery-1.7.1.min.js/eval/seq/4


取决于我前后切换的次数。有没有办法停止评估,或者我的代码中有什么东西导致jQuery存储我正在使用的代码的评估,我可以做些什么来解决它?

所以问题是我正在从jQuery mobile加载页面转换。发生的事情是jquerymobile将新的页面数据附加到DOM,而不是强制页面加载。这导致两个javascript文件同时加载,这意味着最后加载的js文件是主文件,因为两个js文件都使用相同的名称调用函数,所以会多次加载它们

分辨率
删除$.mobile.load()事件并强制单击事件将路径名附加到url

$("#GoPage1").on("click", function () { window.location = "/dir/Page1.aspx"; });
$("#GoPage2").on("click", function () { window.location = "/dir/Page2.aspx"; });

所以问题是我从jquery mobile加载页面转换。发生的事情是jquerymobile将新的页面数据附加到DOM,而不是强制页面加载。这导致两个javascript文件同时加载,这意味着最后加载的js文件是主文件,因为两个js文件都使用相同的名称调用函数,所以会多次加载它们

分辨率
删除$.mobile.load()事件并强制单击事件将路径名附加到url

$("#GoPage1").on("click", function () { window.location = "/dir/Page1.aspx"; });
$("#GoPage2").on("click", function () { window.location = "/dir/Page2.aspx"; });

我会干涸您的代码并参数化方法,以接受URL作为参数,以及第1页和第2页之间的任何其他不同之处。由于您在两个js文件中使用相同的方法名称,因此当第二个js文件加载到客户端时,DOM Get方法将被替换。我将整理您的代码并参数化这些方法,以接受URL作为参数,以及第1页和第2页之间的任何其他不同之处。由于在两个js文件中使用相同的方法名,因此当第二个js文件加载到客户端时,DOM正在获取方法将被替换。