繁体   English   中英

使用jQuery 1.7.1 / eval / seq /的C#Web服务调用

[英]C# webservice calls using jQuery 1.7.1 /eval/seq/

这就是问题所在。 我有三个页面可以进行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);
}

Page2.js

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);
}

因此,两者具有相同的调用和相同的信息,唯一的真正区别是结果不同,并且它们对获取不同数据的不同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加载页面转换。 发生的事情是jquery mobile将新的页面数据附加到DOM而不是强制页面加载。 这导致两个javascript文件同时加载,这意味着最后加载的js文件是主要的,并且因为这两个js文件都使用相同的名称调用函数,因此会多次加载它们。

解析度
删除$ .mobile.load()事件并强制click事件将路径名附加到url

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM