में प्रतीक्षा समय/विलंबता को कम/समाप्त करने के लिए कैसे करें मेरे पास एक एएसपी.नेट एमवीसी 3 प्रोजेक्ट है जहां मुख्य एएसपीएक्स पेज jQuery एजेक्स का उपयोग करके अपने हिस्सों के लिए गतिशील लोडिंग कर रहा है। इसलिए मूल रूप से जब साइट लोड होती है, तो यह/होम/इंडेक्स हिट करता है और उसके बाद इंडेक्स (एएसपीएक्स) व्यू के भीतर, jQuery की कई पंक्तियां होती हैं जो पृष्ठ के कुछ हिस्सों को पॉप्युलेट करने के लिए AJAX कॉल (/ होम/पार्टऑन और/होम/पार्टटवो) बनाती हैं।AJAX अनुरोध
इसलिए हर बार पृष्ठ लोड हो तो यह मूल रूप से 3 अनुरोध कर रहा है: क्यों वहाँ के लिए "प्रतीक्षा" समय किसी तरह का है: सूचकांक प्राप्त करने के लिए, PartOne प्राप्त करने के लिए, और फिर PartTwo
सवाल। निष्पादित करने का तीसरा अनुरोध? मैंने सोचा कि यह ब्राउज़र समवर्ती अनुरोध सीमा थी, लेकिन यह पहला अनुरोध करने के बाद क्यों निष्पादित नहीं कर रहा है?
जब मैं प्रयोगात्मक रूप से "आउटपुट कैश" अट्रिब डालता हूं "पार्टटवो" पर ute, यह अपेक्षा के अनुसार व्यवहार करता है, कि यह तेजी से निष्पादित कर रहा था। यह संकेत देता है कि समस्या आईआईएस में नहीं है, लेकिन उसके बाद कहीं और इससे पहले कि यह मेरी क्रिया विधि को हिट करे।
यहां Chrome नेटवर्क प्रोफाइलर से एक स्क्रीन शॉट है:
यहाँ MvcMiniProfiler पर एक स्क्रीन शॉट है - 3 पंक्ति/मूल्य को देखो, यह मेरी नियंत्रक की कार्रवाई कोड निष्पादित करने से पहले 500ms के लिए इंतजार कर रहा है।
मेरा नियंत्रक कोड इस तरह दिखता है।
public class HomeController : Controller {
public ActionResult Index() {
// do something here
return View();
}
public ActionResult PartOne() {
// do something here
return View();
}
public ActionResult PartTwo() {
// do something here
return View();
}
}
मेरे जावास्क्रिप्ट:
$(document).ready(function() {
$.ajax({
url: "/Home/PartOne",
cache: false,
success: function (data, textStatus, request) {
$("#TestContainerOne").html(data);
}
});
$.ajax({
url: "/Home/PartTwo",
cache: false,
success: function (data, textStatus, request) {
$("#TestContainerTwo").html(data);
}
});
});
मेरे index.aspx:
हालांकि मैं वास्तविक कोड (कोई लंबी गणना, कोई db कॉल, आदि) कतरना, लेकिन PartTwo के लिए कोड बहुत मामूली बात है<h2>Home page</h2>
<div id="TestContainerOne"></div>
<div id="TestContainerTwo"></div>
PartOne.ascx:
<h2>Part One</h2>
PartTwo.ascx:
<h2>Part Two</h2>
सहायता?
यह समवर्ती अनुरोधों एक ब्राउज़र एक विशिष्ट डोमेन के साथ हो सकता है की संख्या के साथ कुछ हो सकता है। इस प्रश्न का उत्तर देखें: http://stackoverflow.com/questions/561046/how-many-concurrent-ajax-xmlhttprequest-requests-are-allowed-in-popular-browse – Dismissile
मुझे ऐसा नहीं लगता है। क्योंकि केवल 3 अनुरोध हैं, इसलिए सिद्धांत रूप में, उन्हें बैक-टू-बैक निष्पादित किया जाना चाहिए - जो वे हैं। लेकिन सर्वर की तरफ देरी हो रही है। आउटपुट कैश का उपयोग करके प्रयोग के बारे में मेरा नोट देखें - जो बताता है कि यह ब्राउज़र/क्लाइंट सीमा के कारण नहीं है। –
कोशिश करने के लिए चीजें: ए) वेब में डीबग = "झूठी" के साथ रिलीज बिल्ड करें।कॉन्फ़िगरेशन (मुझे लगता है कि मैंने कहीं पढ़ा है कि जब डीबग सत्य होता है तो कुछ चीजें हैं जिन्हें कैश किया जाता है), बी) आईआईएस या आईआईएस एक्सप्रेस पर कोड आज़माएं, क्योंकि मुझे आमतौर पर क्लासिक देव सर्वर कुछ हद तक फ्लेकी लगता है। – Pedro