मेरे पास आपके लिए थोड़ा सा सवाल है - लेकिन आशा है कि उत्तर बहुत आसान होगा :)iframes इतनी धीमी क्यों हैं?
मान लें कि मेरे पास लिंक और आईफ्रेम (बस सरल उदाहरण के लिए) के साथ बहुत सरल पृष्ठ है।
<body>
<a href="test.html" target="mframe">open link></a>
<iframe name="mframe" [params] />
</body>
तो जब आप लिंक पर क्लिक करेंगे तो यह फ्रेम में test.html लोड करेगा।
अब मैं div और AJAX कॉल के साथ iframe बदल दूंगा।
<body>
<a href="doAjaxCall('test.html')">open link</a>
<div id="main-content"></div>
</body>
doAjaxCall बस पूरे प्रतिक्रिया प्राप्त करने के लिए प्राप्त ajax requset उपयोग करें, यह (जावास्क्रिप्ट का उपयोग) और में < शरीर > टैग हड़पने सामग्री पार्स और यह मुख्य-content.innerHTML में डाल दिया जाएगा।
test.html में बहुत सी एचटीएमएल, सीएसएस शैलियों (लेकिन मूल पृष्ठ पर समान हैं) - इसलिए जब मैं AJAX समाधान का उपयोग कर रहा हूं तो मुझे उनकी आवश्यकता नहीं है)।
प्रश्न:
क्यों इस ajax समाधान अतः तेज है? मैं अभी भी उसी डेटा को डाउनलोड कर रहा हूं (पूरे test.html डाउनलोड कर रहा हूं)।
आईफ़्रेम समाधान इतना धीमा क्यों है? क्या ब्राउज़र के कारण यह सभी संभावित शैलियों को दोबारा पार्स करना है? या iffames का कोई अन्य उपरि है?
क्या आप एक से अधिक ब्राउज़र में एक ही व्यवहार देखते हैं? – ChristianLinnell
असल में मेरा उदाहरण बहुत आसान था। :) वास्तव में मैं इस समाधान को एक बड़ी साइट पर आजमा रहा था जहां हम अब iframes का उपयोग कर रहे हैं। मैंने उन्हें हटा दिया है और उन्हें अजाक्स समाधान के साथ बदल दिया है। जैसा कि मैंने लिखा है, मैंने सिर्फ AJAX कॉल के साथ लिंक बदल दिए हैं, लेकिन यातायात अभी भी वही है। और हां, यह हर ब्राउज़र (आईई/एफएफ/सीएच/एसएएफ) में निश्चित रूप से तेज़ है। केवल यही कारण है कि मैं अब देख सकता हूं कि ब्राउज़र को बार-बार शैलियों को लोड करने की आवश्यकता नहीं है, केवल 'मुख्य-सामग्री' div के आंतरिक HTML को प्रतिस्थापित करें। धन्यवाद! पावल। – palig
यदि आपकी स्टाइलशीट एक समर्पित सीएसएस फ़ाइल में है जो लिंक टैग के माध्यम से बुलाया जाता है, तो ब्राउज़र को कैशिंग का लाभ लेना चाहिए और केवल इसे लोड करना चाहिए। बीटीडब्ल्यू मैं उत्सुक हूं कि आपका आईफ्रेम कितना धीमा है - हम मिलीसेकंड की बात कर रहे हैं, है ना? – Christophe