2009-01-18 6 views
13

क्या पृष्ठ पर आखिरी बार जावास्क्रिप्ट-लोड विज्ञापन शामिल करने का कोई तरीका है, लेकिन क्या इसे सामग्री में रखा गया है? प्राथमिक उद्देश्य जावास्क्रिप्ट विज्ञापन को पृष्ठ लोड को धीमा करने से रखना है, इसलिए यदि इसे प्राप्त करने के अन्य तरीके हैं तो कृपया साझा करें।धीमी लोड समय को रोकने के लिए पृष्ठ पर आखिरी बार जावास्क्रिप्ट विज्ञापन लोड करना संभव है?

उत्तर

10

defer attribute आप पेज निष्पादन पूर्ण होने तक अपने निष्पादन को स्थगित करने के लिए स्क्रिप्ट ब्लॉक डाल सकते हैं।

<script src="myscript.js" type="text/javascript" defer> 
// blah blah 
</script> 

हालांकि मुझे इस विशेषता का उपयोग करने के बारे में सामान्य सिफारिश के बारे में निश्चित नहीं है।

संपादित करें: @ दाऊद के रूप में बताया, एक्सएचटीएमएल

के लिए defer="defer" का उपयोग और आप हमेशा window.onload घटना के अंदर कोड डाल सकते हैं इतना है कि यह कार्यान्वित के बाद पृष्ठों को लोड:

window.onload = function() { 
    // ad codes here 

}; 

लेकिन बाद के दृष्टिकोण में कुछ समस्याएं हो सकती हैं, तो आप इसे पहले परीक्षण करना चाहेंगे।

this blog post पर डीन एडवर्ड्स द्वारा अधिक जानकारी, जिसने प्रसिद्ध javascript packer लिखा था।


संपादित करें:

function loadScript(src) { 
    document.write('<script src="' + src + '" type="text/javascript"></script>'); 
} 

तो जिसके परिणामस्वरूप कोड: विज्ञापन कोड के ही आकार समस्या है, तो आप हमेशा document.write के माध्यम से स्क्रिप्ट इंजेक्शन के साथ उपरोक्त विधियों के संयोजन के द्वारा लोड हो रहा है स्थगित कर सकते हैं ऐसा कुछ दिख सकता है:

<script type="text/javascript" defer> 

function loadScript(src) { 
    document.write('<script src="' + src + '" type="text/javascript"></script>'); 
} 

loadScript('http://ads.example.com/advertisements.js'); 

</script> 

लेकिन जैसा कि मैंने कहा है, यह आपके द्वारा प्राप्त विशिष्ट विज्ञापन कोड पर निर्भर करता है। document.write की स्थिति के कारण सामानों को लिखने के लिए संभवतः स्थान नहीं लिखा जा सकता है। कुछ संशोधन सहायक हो सकते हैं।

+0

उत्तर के लिए धन्यवाद! मैंने कोशिश की और यह अच्छी तरह से काम किया। – britg

+0

यदि आप एक्सएचटीएमएल को लक्षित कर रहे हैं, तो बस स्थगित करने के बजाय defer = "defer" का उपयोग करना सुनिश्चित करें। – DavGarcia

+0

क्या एक अच्छा जवाब है! +1 –

1
function addLoadEvent(func) { 
     var oldonload = window.onload; 
     if (typeof window.onload != 'function') { 
     window.onload = func; 
     } else { 
     window.onload = function() { 
      oldonload(); 
      func(); 
     } 
     } 
    } 

ऊपर कोड एक नया ऑनलोड घटना है कि अपने मौजूदा जावास्क्रिप्ट साथ हस्तक्षेप नहीं करता जोड़ने के लिए एक अच्छा तरीका है। फिर आप नीचे दिए गए कोड का उपयोग करके विज्ञापनों को लोड करने के लिए एक नया लोड इवेंट जोड़ सकते हैं।

addLoadEvent(function() { // call to loadScript() here }); 
0

मैं आम तौर पर सिर्फ शरीर टैग के अंत से पहले स्क्रिप्ट लोड करने के लिए टैग डाल दिया। तो यह पृष्ठ के अंत में लोड होता है। यह कोई सत्यापन त्रुटियां या जो कुछ भी नहीं देता है।

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