2009-03-18 4 views
7

मैं स्टीफन वाल्थर द्वारा एक पीडीसी सत्र देखा और प्रस्तुति में वह निम्नलिखित की तरह JQuery js फ़ाइल को संदर्भित किया गया था:एएसपीनेट में jquery संदर्भित करने का सबसे अच्छा तरीका क्या है?

<asp:ScriptManager id="sm1" runat="server"> 
<Scripts> 
    <asp:ScriptReference Path="~/Scripts/JQuery.js" /> 
</Scripts> 
</asp:ScriptManager> 

वहाँ एक लाभ या ऊपर जिस तरह से कर रही है के बजाय सिर्फ एक लिंक का उपयोग करने के लिए नुकसान है पृष्ठ के मुख्य भाग में।

<script type="text/javascript"> 

function pageLoad() 
{ 
    $(":text").css("background-color","yellow"); 
} 
</script> 

ऊपर Pageload आवश्यक है:

उन्होंने अपने नमूना पृष्ठों की जावास्क्रिप्ट अनुभाग JQuery चलाने के लिए में निम्नलिखित डाल रहा था? उन्होंने कहा कि यह माइक्रोसॉफ्ट AJAX के पुस्तकालय से है और यह इंतजार कर रहा है के लिए डोम लोड हो रहा है तैयार किया जाए, लेकिन मैंने सोचा कि JQuery में $ प्रतीक डोम के लिए लोडिंग समाप्त होने की प्रतीक्षा कर के लिए सिर्फ एक आशुलिपि है।

उत्तर

8

$ (document) .ready() और Pageload() ही नहीं हैं!

http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/

लेख से:

Pageload() कहा जाता है बस के बाद डोम लोड हो जाए। यह केवल बिंदु है जिस पर Pageload() हालांकि कहा जाता है नहीं है: यह भी हर आंशिक पोस्टबैक के बाद कहा जाता है।

प्रारंभिक कोड के मामले में , $ (दस्तावेज़) .ready() एक आदर्श समाधान है।

+1

तो, अगर मैं Microsoft AJAX पुस्तकालय का उपयोग कर रहा है, मैं Pageload कॉल करनी होगी, लेकिन अगर मैं सिर्फ JQuery उपयोग कर रहा हूँ, मैं सही नहीं है,? – Xaisoft

+0

आपके पास नहीं है लेकिन आपके पास विकल्प है। व्यक्तिगत रूप से मैं jQuery रास्ता $ (फ़ंक्शन() {}) का उपयोग करता हूं; हर समय मेरे पास एमएस AJAX पुस्तकालय लोड हो या नहीं। –

+0

मेरा मानना ​​है कि jQuery दस्तावेज़ तैयार और जावास्क्रिप्ट पेज लोड सामग्री के बीच एक अंतर है ... – RSolberg

3

कि रास्ते में ScriptManager के माध्यम से अपनी स्क्रिप्ट जोड़ने से जोड़ करने के लिए + CompositeScript का उपयोग करके अपने फाइलों कम करें बनाने का लाभ दिया है। दुर्भाग्यवश, इसका मतलब है कि उन्हें पृष्ठ पर ScriptResource.axd के माध्यम से संदर्भित किया जाएगा, जिसे मैंने हमेशा एक बेहद बदसूरत समाधान पाया है।

मुझे अपनी निर्माण प्रक्रिया में juicer जैसे कुछ को एकीकृत करने में अधिक रुचि है, लेकिन आप सुविधा के लिए ScriptManager को हरा नहीं सकते हैं।

+0

यदि आपके पास कोई मास्टरपेज है, तो क्या आप ScriptManager को केवल मास्टरपेज में डालते हैं? – Xaisoft

+0

यह आप पर निर्भर है। यदि आप करते हैं, तो आप बच्चे पृष्ठों पर ScriptManagerProxy का उपयोग कर सकते हैं। –

+0

ठीक है, इसलिए यदि आप मास्टर पेज में स्क्रिप्ट मैनेजर डालते हैं, तो आप मास्टर पेज का उपयोग कर रहे किसी पृष्ठ पर एक और स्क्रिप्ट मैनेजर नहीं डाल सकते हैं, तो आपको इसके बजाय ScriptManagerProxy का उपयोग करना होगा। सही बात? – Xaisoft

4

ScriptManager का उपयोग करना, ASP.NET ब्राउज़र अनुरोधों की संख्या कम करने के लिए एक भी समग्र स्क्रिप्ट बना सकते हैं, और यह भी ब्राउज़र इसका समर्थन करता है, तो स्क्रिप्ट सेक।

<script type="text/javascript" src="Scripts/jquery.js"></script> 

के बाद से आप अपने पृष्ठ पर ScriptManager होगा, आप भी दोहन करने के लिए सक्षम हो जाएगा:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <CompositeScript> 
     <Scripts> 
      <asp:ScriptReference Path="~/Scripts/Script1.js" /> 
      <asp:ScriptReference Path="~/Scripts/Script2.js" /> 
      <asp:ScriptReference Path="~/Scripts/Script3.js" /> 
     </Scripts> 
    </CompositeScript> 
</asp:ScriptManager> 
+0

मैं इसके लिए नया हूं। एकल समग्र लिपि द्वारा आपका क्या मतलब है? – Xaisoft

+0

http://msdn.microsoft.com/en-us/library/cc488552.aspx –

+0

एएसपी.नेट ब्राउज़र में भेजने से पहले सभी .js फ़ाइलों को एक संपीड़ित स्क्रिप्ट में जोड़ती है। अच्छा यदि आप कई गैर-मिनीकृत स्क्रिप्ट का उपयोग कर रहे हैं। –

4

आप कैसे jQuery फ़ाइल को संदर्भित करने पर देख रहे हैं, यह मैं क्या कर रहा हूँ है पेज लोड में।

function pageLoad() { 
    //MSAJAX Stuff... If Needed 
} 

$(document).ready(function() { 
    $.datepicker.setDefaults($.datepicker.regional[$("#<%= hfCultureAbbreviation.ClientID %>").val()]); 
}); 
+0

Thats मैं सामान्य रूप से यह कैसे कर रहा था। आपको पेजलोड की आवश्यकता क्यों है? और मैं जावास्क्रिप्ट के लिए नेट हूं, तो Sys.WebForms.PageRequestManager.getInstance() विधियां आपके उदाहरण में क्या करती हैं? – Xaisoft

+0

@Xaisoft - यह मेरे लिए 2 जावास्क्रिप्ट फ़ंक्शंस बनाता है जो AJAX अनुरोध पूरा होने के बाद चलता है और अनुरोध से पहले सर्वर पर वापस भेजा जाता है। यह कुछ jQuery UI घटकों और अन्य सिस्टम आवश्यकताओं के साथ सत्यापन, आदि के साथ मदद करता है। – RSolberg

+0

जावास्क्रिप्ट के लिए नया, इसलिए यह मेरे सिर पर थोड़ा सा है, लेकिन उदाहरण के लिए धन्यवाद। – Xaisoft

2

इंटेलिजेंस फ़ाइल को भी पंजीकृत करना न भूलें! कभी-कभी बहुत आसान हो सकता है।

+0

मैं उत्सुक था कि मुझे इंटेलिजेंस क्यों नहीं मिल रहा था। मुझे वह फाइल कहां मिल सकती है? – Xaisoft

+0

http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2-vsdoc.js –

+0

बस अपने jquery-1.3.2-min के समान फ़ोल्डर में बनाम फ़ाइल को सहेजें। जेएस या jquery-1.3.2.js –

संबंधित मुद्दे