फ़्रेम (वर्ल्ड वाइड वेब)

वेब ब्राउज़र के संदर्भ में फ्रेम वेब पेज या ब्राउज़र विंडो (कंप्यूटिंग) का ऐसा भाग है जो कॉन्टेंट को स्वतंत्र रूप से लोड करने की क्षमता के साथ अपने कंटेनर से स्वतंत्र कॉन्टेंट प्रदर्शित करने में सहायक है। इस प्रकार फ्रेम में एचटीएमएल या मीडिया एलिमेंट के साथ संलग्न होने वाले कॉन्टेंट को प्रदान करने वाली साइट से अलग वेबसाइट मे आ जाते हैं। इसका यह अभ्यास फ़्रेमिंग के रूप में जाना जाता है, वर्तमान समय में अधिकांश रूप से समान मूल नीतियों के उल्लंघन के रूप में इसे माना जाता है।

एचटीएमएल में फ्रेमसेट नाम के फ़्रेमों का समूह इस प्रकार है जिसमें वेब पेज और मीडिया को निर्देशित किया जा सकता है, इसके आधार पर आईफ्रेम डॉक्यूमेंट की बॉडी के अंदर फ्रेम रखने के लिए स्थान प्रदान किया जाता है।

2000 दशक के प्रारम्भ से उपयोगिता और अभिगम्यता के आधार पर फ़्रेमसेट के कम उपयोग को प्रेरित किया गया है और एचटीएमएल5 मानक उनका समर्थन नहीं करता है।

टैग और गुण
एचटीएमएल में फ्रेम को मुख्यतः  टैग का उपयोग करके बनाया जाता है।   टैग फ्रेम बनाने के लिए उपयोग किए जाने वाले अन्य सभी टैग के लिए कंटेनर टैग है।   मुख्यतः    टैग की स्थान पर उपयोग करते हैं, इस प्रकार फ़्रेमसेट डॉक्युमेंट्स में इन्हें टैग किया जाता हैं।   टैग परिभाषित करता है कि विंडो को फ्रेम में कैसे विभाजित किया जाता हैं।

प्रत्येक फ़्रेमसेट पंक्तियों या स्तंभों के सेट को परिभाषित करता है। यदि उपयोगकर्ता इस फ्रेम का उपयोग करके परिभाषित करता है, तो  की विशेषता क्षैतिज फ्रेम द्वारा बनाई जाती हैं। इस प्रकार यदि उपयोगकर्ता फ्रेम का उपयोग करके परिभाषित करता है, तो उपयुक्त   फिर वर्टिकल फ्रेम द्वारा बनाए जाते हैं। इस प्रकार   एलिमेंट को सम्मिलित किया जा सकता है, जिससे कि अक्षम फ्रेम वाले वेब ब्राउज़र जो फ्रेम का समर्थन नहीं करते हैं, उन्हें उपयोगकर्ता द्वारा प्रदर्शित किया जाता हैं, जैसा कि इस उदाहरण में है:    Your browser does not support frames. Click here to view frame 1. Click here for frame 2.

फ्रेमसेट में   प्रॉपर्टी का उपयोग किया जाता हैं, इस प्रकार यदि 0 से अधिक पूर्णांक पर सेट किया जाता है, तो उपयोगकर्ता इस सीमा को बढ़ाकर फ़्रेम के आकार द्वारा इसे परिवर्तित कर सकता हैं, जब तक कि    विशेषता फ्रेम एलिमेंट में सम्मिलित रहते है। यदि बॉर्डर को 0 पर सेट किया जाता है, तो कोई भी बॉर्डर प्रदर्शित नहीं होगा और अलग-अलग फ़्रेमों में कॉन्टेंट बिना रेखांकन के दूसरे से जुड़े रहते हैं।   एलिमेंट का उपयोग सामान्य एचटीएमएल बॉडी के भीतर इनलाइन किया जाता है, और इस प्रकार प्रारंभिक कॉन्टेंट और नाम को समान रूप से परिभाषित करता है   एलिमेंट। के अंदर कोई पाठ   टैग जोड़ी उन ब्राउज़रों में प्रदर्शित की जाएगी जो आईफ्रेम टैग को नहीं समझते हैं। 

Your browser does not support iframes.

Click here to view the content.

इतिहास
नेटस्केप नेविगेटर 2.0 ने मार्च 1996 में फ़्रेम के लिए उपयोग किए जाने वाले एलिमेंटों को प्रस्तुत किया था। इस प्रकार अन्य ब्राउज़र विक्रेताओं जैसे कि साइबरडॉग के साथ एप्पल इंक ने इस वर्ष के पश्चात इसका अनुसरण किया था। उस समय, नेटस्केप ने एचटीएमएल 3.0 मानक में सम्मिलित करने के लिए विश्वव्यापी वेब संकाय (W3C) को फ्रेम प्रस्तावित किया था। इस प्रकार फ़्रेम का उपयोग प्रारंभिक ऑनलाइन पत्रिकाओं और वेब ऐप्स, जैसे वेबमेल सेवाओं और वेब चैट साइटों को प्रदर्शित करने और नेविगेट करने के लिए किया जाता था। इस प्रकार सर्वर-साइड सम्मिलित या कॉमन गेटवे इंटरफ़ेस समर्थन जैसी सर्वर सुविधाओं की आवश्यकता के बिना एलिमेंटों को पूरी तरह से प्रदर्शित करने की अनुमति देने का फ़्रेम्स का लाभ था। इस प्रकार जनता के लिए सुलभ प्रारंभिक वेब सर्वरों पर ये सुविधाएं सामान्य नहीं थीं।

इसके प्रारंभ में वेबसाइटें अधिकांशतः बैनर प्रदर्शित करने के लिए शीर्ष पर फ्रेम का उपयोग करती थीं जिसे स्क्रॉल नहीं किया जा सकता था। इस प्रकार इन बैनर फ़्रेमों में कभी-कभी साइट के लोगो के साथ-साथ ऑनलाइन विज्ञापन भी सम्मिलित होते हैं।

एक्सएचटीएमएल 1.1, एचटीएमएल 4 का अपेक्षित उत्तराधिकारी, सभी फ़्रेमों को हटा देता है। एक्स फ्रेम्स द्वारा यह इंगित किया जाता हैं कि इसका अंतिम प्रतिस्थापन, पॉप्युलेटेड फ़्रेमसेट को संबोधित करने के लिए समग्र यूनिफॉर्म रिसोर्स पहचानकर्ता प्रदान किया गया हैं।

इसके पश्चात एचटीएमएल5 मानक ने फ्रेमसेट को Xएचटीएमएल से अलग करके हटा दिया गया हैं। इस प्रकार  एलिमेंट कई सैंडबॉक्स (कंप्यूटर सुरक्षा) विकल्पों के साथ रहता है जो साइटों के बीच कॉन्टेंट साझा करने के लिए अभिप्रेत है।

लाभ
कॉन्टेंट को स्वतंत्र रूप से लोड और नेविगेट करने की अनुमति देकर, फ्रेम ने पहली बार विकसित होने पर उपयोग में आने वाले साधारण एचटीएमएल पर कई लाभ प्रस्तुत किए गए हैं:


 * नेविगेशन डेटा जैसे सभी या अधिकतर पेजों पर साझा की गई कॉन्टेंट के रखरखाव को सरल बनाना आवश्यक होता हैं। इस प्रकार यदि किसी आइटम को साइडबार नेविगेशन मेनू में जोड़ने की आवश्यकता है, तो वेब पेज लेखक को केवल वेब पेज फ़ाइल को बदलने की आवश्यकता होती है, जबकि साइडबार मेनू सभी पर दिखाई देने पर पारंपरिक गैर-फ़्रेमसेट वेबसाइट पर प्रत्येक पेज को संपादित करना होगा।
 * पेज के उन भागो को फिर से डाउनलोड न करने के लिए आवश्यक बैंडविड्थ की मात्रा को कम करना जो परिवर्तित नहीं हुए थे।
 * प्रत्येक अनुभाग को स्वतंत्र रूप से स्क्रॉल करने की क्षमता के साथ, सूचनाओं के कई टुकड़ों को साथ-साथ देखने की अनुमति देना आवश्यक होता हैं। इस प्रकार इसमें दो चित्रों या वीडियो की साथ-साथ तुलना, या किसी चीज़ को समझने के दो अलग-अलग तरीके सम्मिलित हो सकते हैं, जैसे कि वीडियो के बगल में पाठ का स्वतंत्र रूप से स्क्रॉल पेज, चित्र, एनीमेशन, 3D घूमने वाली वस्तुएं, आदि।
 * फ़ुटनोट्स या विषयांतर को पेज के समर्पित खंड में प्रकट होने की अनुमति देना, जिससे कि पाठक मुख्य पाठ में अपना स्थान खो न दे।

आलोचना
एचटीएमएल कॉन्टेंट को तैयार करने के अभ्यास ने कई आलोचनाओं को जन्म दिया, जो कि इस प्रकार उपयोगिता और पहुंच संबंधी चिंताओं पर केंद्रित थी। इसमे सम्मिलित है:


 * फ़्रेमिंग ब्राउज़र में प्रदर्शित कॉन्टेंट और URL के बीच की पहचान को तोड़ देता है, जिससे फ़्रेमसेट के भीतर कॉन्टेंट के किसी विशेष आइटम को लिंक करना या बुकमार्क करना कठिन हो जाता है
 * विभिन्न ब्राउज़रों में फ्रेम का कार्यान्वयन असंगत है *ब्राउज़र जो कॉन्टेंट को रैखिक रूप से प्रस्तुत करते हैं, फ़्रेम को अच्छी तरह से हैंडल नहीं करते हैं।
 * स्क्रीन रीडर प्रोग्राम
 * पाठ या ऑडियो ब्राउज़र
 * ईमेल ब्राउज़र जैसे अगोरा (वेब ​​ब्राउज़र)
 * मोबाइल ब्राउज़र
 * फ़्रेमिंग वेब अनुक्रमण को जटिल बनाता है और खोज इंजन अनुकूलन के लिए हानिकारक हो सकता है।
 * फ़्रेमिंग विभिन्न सर्वरों पर कॉन्टेंट के बीच की सीमाओं को भ्रमित करता है, जो इस प्रकार कॉपीराइट उल्लंघन के मुद्दों को उठाता है
 * खोज इंजन से आने वाले विज़िटर फ़्रेम में प्रदर्शित करने के उद्देश्य से किसी पेज पर जा सकते हैं, जिसके परिणामस्वरूप विज़िटर के पास शेष साइट पर नेविगेट करने का कोई तरीका नहीं होता है
 * फ्रेम्स बैक बटन के व्यवहार को परिवर्तित करते हैं। * उपयोगकर्ता सामान्यतः ब्राउज़र से यह उम्मीद नहीं करते हैं कि वे फ्रेम को उसी प्रकार प्रिंट करें जैसे वे करते हैं। * वेब पेजों पर बाहरी लिंक जो फ्रेम का उपयोग करते हैं, फ्रेमसेट में अन्य पेजों को प्रदर्शित करने का कारण बन सकते हैं, क्योंकि लिंक के लिए डिफ़ॉल्ट व्यवहार वर्तमान फ्रेम में लोड करना है यदि लेखक अन्यथा निर्दिष्ट नहीं करता है। इसका उपयोग फेक वेबमास्टरों द्वारा किया जा सकता है जिससे कि यह प्रदर्शित हो सके कि किसी अन्य साइट की कॉन्टेंट वास्तव में फ़्रेमसेट होस्ट करने वाली साइट का भाग थी।
 * यदि इस प्रकार स्क्रीन रिज़ॉल्यूशन या ब्राउज़र विंडो का आकार बहुत कम है, तो प्रत्येक फ़्रेम में स्क्रॉल बार होंगे जो त्रुटि दिख सकते हैं और इस प्रकार पहले से ही सीमित स्थान का उपयोग करते हैं। इस प्रकार का व्यवहार सामान्यतः खराब साइट डिज़ाइन को इस प्रकार के लेआउट के अतिरिक्त निश्चित लेआउट से अधिक होता है, जिससे सभी फ़्रेमसेट सुविधाओं को उचित उपयोग में नहीं लाया जाता था। इस व्यवहार को निम्न द्वारा कम किया जा सकता है:
 * छोटे फ़्रेमों के लिए स्क्रॉलिंग को अक्षम करना जिन्हें सामान्यतः स्क्रॉलबार की आवश्यकता नहीं होती,
 * तय डिजाइनों के अतिरिक्त लक्ष्य पेजों में इस प्रकार की डिजाइन की विशेषताओं का उपयोग करना आवश्यक होता हैं, जिससे कि कॉन्टेंट पहले स्थान पर क्षैतिज स्क्रॉलबार का कारण नहीं बनता हैं।

विकल्प
जैसे-जैसे वेब तकनीक विकसित हुई, वैसे-वैसे कई उद्देश्य जिनके लिए फ़्रेम का उपयोग किया गया, उन तरीकों से संभव हो गए जिससे फ़्रेम के साथ पहचानी जाने वाली समस्याओं से बचा जा सके।


 * व्यापक शैली पत्रक (सीएसएस) ने पेज के एलिमेंटों को स्वतंत्र रूप से स्क्रॉल करने की अनुमति दी (  संपत्ति) या स्क्रीन पर आयोजित किया जाता है जबकि अन्य कॉन्टेंट स्क्रॉल की जाती है, इस प्रकार इसका उपयोग करके
 * सर्वर-साइड में साझा कॉन्टेंट को बार संपादित करने की अनुमति दी जाती है और समाप्त पेज के हिस्से के रूप में क्लाइंट को स्वचालित रूप से डिलीवर किया जाता है, जैसे-जैसे सर्वर सीपीयू और कनेक्शन की गति में वृद्धि हुई, वैसे-वैसे इसे करने के लिए आवश्यक अतिरिक्त कार्य पर विचार कम होता गया।
 * कॉमन गेटवे इंटरफ़ेस और वेब-ओरिएंटेड पटकथा भाषाएँ और वेब विकास फ्रेमवर्क जैसे कि PHP और सक्रिय सर्वर पेज, साथ ही डेटाबेस-समर्थित कॉन्टेंट प्रबंधन प्रणाली जैसे वर्डप्रेस के , कॉन्टेंट को बनाए रखने और नेविगेशन प्रदान करने के लिए अधिक समृद्ध विकल्प प्रदान करते हैं।
 * क्लाइंट-साइड स्क्रिप्टिंग और डायनेमिक एचटीएमएल ने पेज के कुछ भागो को उपयोगकर्ता के कार्यों के आधार पर नेत्रहीन रूप से परिवर्तन करने की अनुमति दी हैं। इसने फ़ुटनोट्स या निर्देशों जैसी साइड कॉन्टेंट को दिखाने के लिए और अधिक अनुमति दी हैं, क्योंकि अब इन्हें पूर्व-निर्धारित फ़्रेम की आवश्यकता के अतिरिक्त पेज पर कहीं भी प्रदर्शित और छिपाया जा सकता है।
 * AJAX कॉन्टेंट के पेज के भीतर गतिशील प्रदर्शन की अनुमति देता है, भले ही इसे सर्वर से लाने की आवश्यकता हो, उदाहरण के लिए लॉग इन उपयोगकर्ता या अन्य घटनाओं के आधार पर प्रदर्शित करते हैं।

यह भी देखें

 * हाइपरलिंकिंग और फ़्रेमिंग के कॉपीराइट पहलू
 * एचटीएमएल एलिमेंट फ्रेम्स
 * इनलाइन लिंकिंग
 * डीप लिंकिंग
 * फ्रेमकिलर
 * टेबललेस वेब डिज़ाइन

बाहरी संबंध

 * एचटीएमएल Help: What's wrong with frames?
 * Dan's Web Tips: Frames
 * Script designed to prevent framing of your content