2011-05-20 19 views
7

मेरे पास एक एएसपी.NET एप्लिकेशन है जो ASP.NET AJAX और AJAX नियंत्रण टूलकिट का उपयोग करता है। एप्लिकेशन पीसी पर सभी हालिया ब्राउज़रों पर ठीक चलता है। यह मेरे आईपैड पर भी ठीक काम करता है, कम से कम पहली बार एप्लिकेशन का उपयोग किया जाता है। मैंने पाया है कि अगर मैं आईपैड बंद करता हूं और बाद में पृष्ठ पर लौटता हूं (एक बुकमार्क या इसी तरह के माध्यम से), तो साइट टूट जाती है। मैंने एएसपी.NET/ASP.NET AJAX समस्या/बग/सीमा में विफलता को कम कर दिया है, और मैं प्रगति के लिए कुछ मदद की तलाश में हूं।कारण क्यों ASP.NET AJAX अक्षम किया जाएगा

आईपैड के लिए प्रॉक्सी सर्वर के रूप में फिडलर का उपयोग करके, मैंने पृष्ठ को फिर से खोलते समय निम्न समस्याओं की पहचान की है।

  1. मेरा * .skin फ़ाइल ठीक से लागू नहीं है। उत्पन्न शैली टैग में * .skin फ़ाइल में निर्दिष्ट कुछ पैरामीटर शामिल नहीं हैं।
  2. पृष्ठ में MicrosoftAjaxWebForms.js फ़ाइल शामिल नहीं है। (जब काम करना, यह सही ToolkitScriptManager लिपियों के सब से ऊपर ScriptResource.axd के लिए एक संदर्भ उत्सर्जन करता है।
  3. पेज समारोह WebForm_FindFirstFocusableChild (नियंत्रण) के साथ शुरू एक और जे एस फ़ाइल का संदर्भ शामिल नहीं है
  4. पेज एक को शामिल नहीं करता इस तरह के __LASTFOCUS, __EVENTTARGET और __EVENTARGUMENT
  5. पेज के रूप में कुछ छिपा क्षेत्रों document.forms का उपयोग कर [ 'aspnetForm'] और __doPostBack को परिभाषित करने के लिए एक स्क्रिप्ट ब्लॉक शामिल नहीं है।
  6. पेज Sys को क्रियान्वित करने के लिए एक स्क्रिप्ट ब्लॉक शामिल नहीं है। WebForms.PageRequestManager._initialize
  7. कुछ अन्य प्रारंभिक स्क्रिप्ट मौजूद नहीं हैं (फोकस सेट करना, अपडेट प्रोग्रेस बनाना आदि)

किसी भी तरह, ऐसा लगता है कि ढांचा तय करता है कि इन स्क्रिप्ट की आवश्यकता नहीं है और उन्हें उत्सर्जित नहीं करता है। सभी स्क्रिप्ट्स को पारस्परिक रूप से देखते हुए, एक आम कारण होना चाहिए। यह कारण से संबंधित हो सकता है कि * .skin गुण शामिल नहीं हैं। कोई विचार? मैंने ब्राउज़र क्षमताओं के बारे में सोचा होगा, लेकिन यह केवल साइट पर आने वाली यात्राओं पर होता है, पहले नहीं।

संपादित करें: निश्चित रूप से ब्राउज़र क्षमता समस्या की तरह दिख रहा है।

अनुरोध है कि काम करते हैं: उपयोगकर्ता-एजेंट: Mozilla/5.0 (iPad, यू, सीपीयू ओएस 4_3_3 मैक ओएस एक्स की तरह; en-us) AppleWebKit/533.17.9 (KHTML, छिपकली की तरह) संस्करण/5.0.2

अनुरोध है कि नहीं है: उपयोगकर्ता-एजेंट: Mozilla/5.0 (iPad, यू, सीपीयू ओएस 4_3_3 मैक ओएस एक्स की तरह; en-us) AppleWebKit/533.17.9 (KHTML, छिपकली की तरह) मोबाइल/8J2

App_Browsers में एक कस्टम फ़ाइल बनाने का प्रयास करेगा और अतिरिक्त जानकारी के साथ वापस पोस्ट करेगा।

+0

संभव डुप्लिकेट Global.asax में करते हैं। नेट/आईपैड सफारी कैश इश्यू?] (Http://stackoverflow.com/questions/5681122/asp-net-ipad-safari-cache-issue) – NotMe

+0

आप इस पर अधिक आंखों को पाने के लिए अपने पिछले प्रश्न पर एक बक्षीस रखने पर विचार कर सकते हैं – NotMe

उत्तर

6

मूल समस्या वास्तव में एएसपी.NET सफारी के बजाय जेनेरिक डाउनलेवल 'मोज़िला' के रूप में आईपैड को पहचानती है, जब एप्लिकेशन पूर्ण स्क्रीन मोड में लोड होता है। ऐसा लगता है कि जावास्क्रिप्ट समर्थित नहीं है, आदि

समाधान आपके सभी एएसपी.नेट पृष्ठों पर निम्नलिखित जोड़ रहा है (इसे अपने सभी एएसपी.NET पृष्ठों से प्राप्त मूल पृष्ठ पर जोड़कर)।

protected void Page_PreInit(object sender, EventArgs e) 
    { 
     if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1) 
     { 
      this.ClientTarget = "uplevel"; 
     } 
    } 

(मैंने एक एकल * बनाने की कोशिश की।ब्राउज़र फ़ाइल लेकिन बुरी तरह विफल रहा है के रूप में यह मैं अपने खुद के भीतर से ढांचे के * .browser फ़ाइलों संदर्भित कर सकते हैं प्रकट नहीं होता है।)

+2

या इस फिक्स के साथ एक बेस पेज बनाएं और उन सभी को प्राप्त करें :) –

+0

स्पष्ट रूप से, मैं यही कर रहा हूं :) पाठ को और अधिक स्पष्ट बनाने के लिए संपादित कर दूंगा। –

+1

मैं इसके लिए आपको 50 वोट दूंगा, मैं बस इस मुद्दे में भी भाग गया और सही जवाब खोजने के लिए मुझे कुछ दिन लगे। – Mohgeroth

1

मैं आमतौर पर [एएसपी की

void Application_BeginRequest(Object sender, EventArgs e) 
{ 
    Request.Browser.Adapters.Clear(); 
} 
संबंधित मुद्दे