【发布时间】:2012-04-27 22:55:38
【问题描述】:
所以这就是问题所在。我有三个页面可以进行 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
取决于我来回切换的次数。有什么方法可以停止 eval,或者我的代码中有什么东西导致 jQuery 存储我正在使用的代码的 eval,我能做些什么来解决它?
【问题讨论】:
-
我会干掉您的代码并参数化方法以接受 URL 作为参数以及第 1 页和第 2 页之间的其他任何不同之处。由于您在两个 js 文件中使用相同的方法名称,因此当第二个 JS 文件加载到客户端时,DOM is getting 方法被替换。
标签: c# jquery asp.net web-services eval