एचटीएमएल 5 में फ्रेम क्यों अपग्रेड किए गए, लेकिन आईफ्रेम नहीं? आखिरकार, दोनों के बीच लगभग कोई अंतर नहीं है। कई उदाहरणों में दोनों में से कोई एक ही आउटपुट देता है (यदि मुझे गलत लगे तो क्षमा करें)?
एचटीएमएल 5 में फ्रेम क्यों अपग्रेड किए गए, लेकिन आईफ्रेम नहीं? आखिरकार, दोनों के बीच लगभग कोई अंतर नहीं है। कई उदाहरणों में दोनों में से कोई एक ही आउटपुट देता है (यदि मुझे गलत लगे तो क्षमा करें)?
जवाबों:
आपकी पोस्ट में कुछ गलत धारणाएँ हैं। सबसे पहले, frameऔर framesetतत्वों को एचटीएमएल 5 में नहीं निकाला जाता है, वे अप्रचलित हैं (यानी, उन्हें पूरी तरह से हटा दिया गया है)।
दूसरा, frameऔर framesetतत्व तत्व के समान नहीं हैं iframe, और न ही वे समान आउटपुट देते हैं:
framesetवे प्रयोज्य और पहुँच के लिए बुरा कर रहे हैं, और वे क्या पूरा करने के लिए है पूरी तरह से सीएसएस और सर्वव्यापी सर्वर साइड विकास द्वारा प्रतिस्थापित किया गया इरादा: तत्व एक साधन के वेब पृष्ठों के लिए एक अलग दस्तावेज़ मॉडल शामिल करने के लिए के रूप में पृष्ठों में शरीर तत्व बदल देता है।
iframeतत्व, दूसरे हाथ पर, एक पृष्ठ के मुख्य भाग को प्रतिस्थापित नहीं करता। यह सामग्री के एक ब्लॉक के भीतर एम्बेडेड एक नए ब्राउज़िंग संदर्भ को शामिल करने के साधन के रूप में कार्य करता है। यह फ्रेमसेट मॉडल के रूप में एक ही प्रयोज्य या पहुंच की समस्याओं से ग्रस्त नहीं है और इसका उपयोग लगभग कहीं भी किया जाता है, जिसमें एक एम्बेडेड ब्राउज़िंग संदर्भ (सबसे विपुल उदाहरण होने के कारण विजेट) को शामिल करने की आवश्यकता होती है। 1
iframeएचटीएमएल 5 में भी है कि यह किया जा सकता है अतिरिक्त सुविधाओं पर ले जाता सैंडबॉक्स , मूल दस्तावेज़ तय करने के लिए क्या यह के भीतर क्रियान्वित हो जाता है की इजाजत दी। यह अविश्वासित सामग्री को एम्बेड करते समय मूल दस्तावेज (और मूल दस्तावेज के आगंतुक) के लिए सुरक्षा के कुछ माप की अनुमति देता है।
नोट 1:object तत्व कुछ हद तक साथ ओवरलैप करता iframeतत्व है, लेकिन यह एक अलग सामग्री मॉडल (जो प्लग इन के लिए मुख्य रूप से करना है) है, चेतावनियां के अपने स्वयं के सेट है, और सैंडबॉक्सिंग नहीं है विशेषताओं का iframeतत्व है।
फ़्रेम (फ़्रेमसेट) दस्तावेज़ के रूप में कार्य करता है। इसे हटा दिया गया है क्योंकि यह HTML दस्तावेज़ संरचना और नेविगेशन को तोड़ता है। उदाहरण के लिए। आपके पास एक फ्रेम में लिंक हैं, दूसरे में सामग्री, आप एक नई विंडो में पेज से लिंक नहीं खोल सकते, आप विशिष्ट उप-पृष्ठ, आदि से लिंक नहीं कर सकते।
दूसरी ओर iframes कुछ भी नहीं टूटेगा अगर सही तरीके से उपयोग किया जाता है क्योंकि वे सैंडबॉक्स सामग्री के लिए हैं (जैसे। विज्ञापन)।
फ़्रेमसेट का उपयोग अक्सर ऐसे तरीके से किया जाता है जहां वे वेब के मूलभूत सिद्धांत को तोड़ते हैं - प्रत्येक दस्तावेज़ में एक एकल URL होता है। इससे लिंकिंग, बुकमार्क, खोज इंजन आदि के साथ समस्याएं होती हैं।
एक फ्रेमसेट का विशिष्ट उपयोग लोगो या हेडर के साथ शीर्ष पर एक फ्रेम होगा, एक मेनू के साथ एक फ्रेम, और एक सामग्री फ्रेम। लेकिन खोज इंजन इंडिविजुअल पेजों को इंडेक्स करता है, इसलिए जब आप Google में कोई पेज ढूंढते हैं, तो वह सीधे फ्रेमसेट के बिना कंटेंट पेज से लिंक हो जाता है, जिससे आप नेविगेशन खो देते हैं। लिंक और बुकमार्क के साथ समस्या यह है कि आप आमतौर पर फ़्रेमसेट के अंदर एक विशेष सामग्री पृष्ठ को लिंक या बुकमार्क करना चाहते हैं, बिना फ़्रेमसेट खोए। ऐसा करने का कोई आसान तरीका नहीं है।
फ़्रेमसेट्स पहली जगह में लोकप्रिय हो गए क्योंकि वे एक स्क्रॉल सामग्री क्षेत्र के साथ एक सांख्यिकीय रूप से तैनात हेडर और मेनू की अनुमति देते थे। लेकिन आज सीएसएस के साथ इसे बहुत आसान बनाया जा सकता है। इसके अलावा फ्रेम ने आपको किसी भी सर्वर-साइड कोडिंग का उपयोग किए बिना कई पन्नों पर लोगो और मेनू जैसे सामान्य तत्वों का उपयोग करने की अनुमति दी। यह उस समय एक फायदा था जब सर्वर-साइड कोडिंग थकाऊ था और त्रुटि प्रवण (यानी सीजीआई स्क्रिप्ट), और कई मेजबानों ने सर्वर-साइड स्क्रिप्टिंग की बिल्कुल भी अनुमति नहीं दी थी। कंटेंट मैनेजमेंट सिस्टम (CMS) और बेहतर सर्वर-साइड प्लेटफ़ॉर्म के साथ आज, यह सर्वर की तरफ बेहतर तरीके से संचालित होता है।
तो मूल रूप से एक फ्रेमसेट का उपयोग करने के कोई फायदे नहीं हैं, बस बहुत सारी समस्याएं हैं।
IFrames का उपयोग उसी तरह किया जा सकता है जिस तरह से फ्रेमसेट का उपयोग किया गया था, और उस स्थिति में वे भी समान समस्याएं पैदा करते हैं। लेकिन iframes के कई वैध उपयोग भी हैं जो समान समस्याओं को जन्म नहीं देते हैं।