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

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

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

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

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

प्रत्येक फ़्रेमसेट पंक्तियों या स्तंभों के सेट को परिभाषित करता है। यदि उपयोगकर्ता फ्रेम का उपयोग करके परिभाषित करता है  विशेषता तो क्षैतिज फ्रेम बनाए जाते हैं। इस प्रकार यदि उपयोगकर्ता फ्रेम का उपयोग करके परिभाषित करता है   फिर वर्टिकल फ्रेम बनाए जाते हैं।   एलिमेंट को सम्मिलित किया जा सकता है, जिससे कि अक्षम फ्रेम वाले वेब ब्राउज़र (या ब्राउज़र जो फ्रेम का समर्थन नहीं करते हैं) उपयोगकर्ता को कुछ प्रदर्शित कर सकते हैं, जैसा कि इस उदाहरण में है:

<वाक्यविन्यास लैंग = एचटीएमएल4सख्त>    आपका ब्राउज़र फ्रेमों का समर्थन नहीं करता है। फ्रेम 1 देखने के लिए यहां क्लिक करें। फ्रेम 2 के लिए यहां क्लिक करें।  

फ्रेमसेट में   प्रॉपर्टी जा उपयोग किया जाता हैं, इस प्रकार यदि 0 से अधिक पूर्णांक पर सेट किया जाता है, तो उपयोगकर्ता इस सीमा को खींचकर फ़्रेम का आकार परिवर्तित कर सकता हैं, जब तक कि ए   विशेषता फ्रेम एलिमेंट में सम्मिलित है। यदि बॉर्डर को 0 पर सेट किया जाता है, तो कोई भी बॉर्डर प्रदर्शित नहीं होगा और अलग-अलग फ़्रेमों में कॉन्टेंट बिना रेखांकन के दूसरे से सटे होंगे।   एलिमेंट का उपयोग सामान्य एचटीएमएल बॉडी के भीतर इनलाइन किया जाता है, और इस प्रकार प्रारंभिक कॉन्टेंट और नाम को समान रूप से परिभाषित करता है   एलिमेंट। के अंदर कोई पाठ   टैग जोड़ी उन ब्राउज़रों में प्रदर्शित की जाएगी जो आईफ्रेम टैग को नहीं समझते हैं। <वाक्यविन्यास लैंग = एचटीएमएल4सख्त> < src= http://www.example.com/frame_1.एचटीएमएल ऊंचाई= 480 चौड़ाई= 640 > आपका ब्राउजर आईफ्रेम्स का समर्थन नहीं करता है। कॉन्टेंट देखने के लिए यहां क्लिक करें।  

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

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

बाद के एचटीएमएल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