المتصفح استجابة الحد الأقصى لحجم
سؤال
انا اتصل بي عبر النطاقات خدمة الويب من خلال getJson() دعوة من مسج.كما ردي كائن حجم كبير جدا, لقد استخدمت أقصى سلمان حجم أجل خدمة الويب.لقد راجعت getJson() هو إعطاء الرد المناسب الكائن.ولكن لا يزال بلدي وظيفة رد الاتصال لا يسمى.الحرائق أقول أنه(فايرفوكس) استجابة حجم تجاوز.
هل يستطيع احد ان يخبرني ماذا يكون الحد الأقصى المتصفح رد حجم الحد الذي متصفح قياسي هـ.ز (firefox, ie) مقبض و كيفية التعامل مع هذه المشكلة ؟
هنا مقتطف شفرة نفسه.
//Wrapper call to the actual getJson call
function getResponse() {
var localService = new getServiceProxy("SearchData.asmx");
localService.invoke("Search", "", "successcall");
}
//getJson call
function getServiceProxy(serviceUrl) {
var _I = this;
this.serviceUrl = serviceUrl;
// *** Call a wrapped object
this.invoke = function(method, data, callback, error) {
if (data == "") {
var url = _I.serviceUrl + "/" + method + "?output=json&callback=?";
}
else {
url = _I.serviceUrl + "/" + method + "?" + data + "&output=json&callback=?";
}
$.getJSON(url, function(arg) {
var evalstr = callback + "(" + JSON.stringify(arg) + ");";
eval(evalstr);
});
}
}
//success callback function
function successcall(multiSearchResponse) {
//use the response.
}
أي مساعدة سوف تكون محل تقدير كبير.
شكرا Subrat.
المحلول
وإيف تم من خلال هذا مرة واحدة في المشروع، وما أذكر كان ذلك IE له حد من 2083 حرفا لكل وظيفة وطلبات GET. FF له حد أكبر، ولكن لا حدود لها.
نصائح أخرى
الشيء الوحيد الذي يبدو غريبا نوعا ما هي وظيفة رد الاتصال:
$.getJSON(url, function(arg) {
var evalstr = callback + "(" + JSON.stringify(arg) + ");";
eval(evalstr);
});
منذ كنت تستخدم JSONP (بسبب طلب عبر المجال) المستجيبة الخدمة يجب أن تعود جافا سكريبت مثل:
jQueryGeneratedUniqueCallbackName12345({my: 'data', foo: 'bar'});
لذلك arg الحجة الفعلية كائن جافا سكريبت.يجب أن لا تحتاج إلى stringify ثم eval ذلك.ببساطة استخدامه كما هو ، أي:
$.getJSON(url, function(data) {
console.log(data.foo);
});
تماما قبل فترة نشرت لي عن الأعمال الداخلية JSONP على بلدي بلوق إذا كنت ترغب في مزيد من التفاصيل.
ربما كنت تريد الخاص بك $.getJSON
جزء تبدو كما يلي:
$.getJSON(url, function(arg) {
callback.apply(null, JSON.stringify(arg));
});
// Or more simply
$.getJSON(url, function(arg) {
callback(JSON.stringify(arg));
});
بعض مزيد من المعلومات حول apply
: MDN مستندات
تحديث: قبل أن يمكنك أيضا تغيير getResponse
وظيفة:
function getResponse() {
var localService = new getServiceProxy("SearchData.asmx");
localService.invoke('Search', '', successcall);
}