2009-08-09 15 views
18

iframes का उपयोग करने के लिए कोई कारण नहीं हैं? मैं वर्तमान में एक निर्बाध अनुभव प्रदान करने के लिए एक अलग सर्वर (एक साइन अप पेज - एक वितरित अनुप्रयोग का हिस्सा) से एक पृष्ठ लोड करने के लिए इसका उपयोग करता हूं। Iframes का उपयोग खराब अभ्यास माना जाता है या इसका उपयोग ठीक है?IFrame का उपयोग न करने के कारण?

+1

यह प्रश्न देखें: http://stackoverflow.com/questions/362730/are-iframes-cononsidered-bad-practice –

+6

FYI: एकाधिक उत्तर महान हैं। उन सभी को देखें, न केवल स्वीकार किए गए एक। – Alex

+0

[यह] (http://stackoverflow.com/a/362752/1257607) – DanielV

उत्तर

16

आईफ़्रेम एक अच्छा टूल है। यह निकट-सार्वभौमिक ब्राउज़र समर्थन का आनंद लेता है, इसे कार्यान्वित करना आसान है और इसमें कई उपयोगी कार्य हैं। किसी अन्य एचटीएमएल तत्व के साथ, इसका दुरुपयोग किया जा सकता है, लेकिन बुद्धिमानी से यह एक ठोस यूआई में एक भूमिका निभा सकता है।

कुछ डेवलपर इसके बजाय AJAX का उपयोग करने का बहस कर सकते हैं, और कुछ परिस्थितियों में यह अधिक उपयुक्त दृष्टिकोण हो सकता है, लेकिन AJAX एक पैनसिया नहीं है और iframes एक बहुत ही सरल कार्यान्वयन हो सकता है जिसका आपके उपयोगकर्ताओं के लिए एक ही अंत परिणाम है। जो कुछ भी सबसे सरल है, और केवल तभी बदलें जब आप यह सत्यापित कर सकें कि यह कैसे और क्यों काम नहीं कर रहा है।

+0

मदद कर सकता है मैं AJAX करना चाहता था लेकिन जैसा कि उल्लिखित साइन अप पेज एक अलग सबडोमेन से आ रहा है, मैं इसे नहीं कर सका (क्रॉस डोमेन समस्या) – Alex

+0

@Alex आप हमेशा अपनी खुद की वेब सेवा लिखकर क्रॉस-डोमेन समस्या के आसपास हो सकते हैं जो अन्य डोमेन से डेटा प्राप्त करता है और फिर से प्रदर्शित करता है, और इसके बजाय * * आपके AJAX कोड से कॉल करता है। हालांकि, जैसा कि मैंने अपने जवाब में कहा था, अगर एक आईफ्रेम पहले से ही आपको पूरा करता है, तो इसे अधिक इंजीनियर न करें या आवश्यकतानुसार अधिक समय व्यतीत न करें। –

12

iframes का उपयोग जारी रखें। यहां एक उदाहरण दिया गया है:

वीज़ा चीज़ द्वारा पूरी तरह से सत्यापित वास्तव में मुझे परेशान करता है। मैं किसी साइट पर खुशी से खरीदारी कर रहा हूं, जिस पर मुझे विश्वास है, जब मुझे किसी साइट पर रीडायरेक्ट किया जाता है, मैंने कभी नहीं सुना है ( वीजा.com) और मुझे कुछ अन्य फॉर्म भरना होगा और उम्मीद है कि मुझे सही तरीके से रीडायरेक्ट किया जाएगा शॉपिंग साइट पर वापस।

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

हालांकि एक वेब डेवलपर के रूप में मुझे पता है कि उसमें एक सादा पुराना रीडायरेक्ट-वहां-रीडायरेक्ट-बैक के बीच कोई तकनीकी अंतर नहीं है, उपयोगकर्ता अनुभव इतना बेहतर है!

+4

यह एक बिंदु है, लेकिन मैं क्रेडिट कार्ड डेटा दर्ज करते समय विपरीत कहूंगा, मैं पूरी तरह से सत्यापित वीजा (पेपैल) वेबपृष्ठ (पता बार में आसानी से दिखाई देने वाले यूआरएल के साथ) में अपने क्रेडिट कार्ड में प्रवेश करने के बजाय पूरी तरह से पसंद करना पसंद करूंगा किसी की वेबसाइट के आईफ्रेम में डेटा। –

+2

@ मार्को डेमायो: सत्यापित द्वारा वीज़ा पृष्ठ में एक सुरक्षा वाक्यांश शामिल है जिसे मैंने योजना के साथ पंजीकृत करते समय दर्ज किया था, इसलिए मुझे पता है कि यह वास्तविक है। हां, सिद्धांत रूप में जॉन लुईस में कोई भी वीज़ा सामग्री द्वारा सत्यापित किया जा रहा है और मेरे परिणामों को सूँघ रहा है, लेकिन यही कारण है कि मैंने कहा "मैं उस साइट पर खुशी से खरीदारी कर रहा हूं जिस पर मेरा भरोसा है" - मुझे विश्वास है कि जॉन लुईस ऐसा नहीं करते हैं। और सत्यापित द्वारा वीज़ा के लिए यूआरएल कुछ पते के लिए है जिसे आपने कभी भी नहीं सुना है, इसलिए इसे वास्तव में * आपके विश्वास को कम कर देता है। – RichieHindle

8

iframes के पास मूल दस्तावेज़ के कुछ गुणों तक पहुंच है, उदा। parent.location.href या parent.window.location (IE को प्रतिबंधित करने की अनुमति देता है) का उपयोग करके पैरेंट फ्रेम को नए स्थान पर रीडायरेक्ट करें।

यह अन्य सर्वरों से सामग्री एम्बेड करते समय फ़िशिंग हमलों के लिए बहुत अच्छा है (भले ही आप उस सर्वर पर भरोसा करते हैं, इससे समझौता किया जा सकता है)।

iframes का इस्तेमाल कई अन्य हमलों के लिए भी किया जा सकता है: IFrames security summary

3

एचटीएमएल 5 के साथ आप विंडो से विंडो भेजने के लिए क्रॉस दस्तावेज़ मैसेजिंग एपीआई का उपयोग करने में सक्षम होंगे, लेकिन अब के लिए आईफ्रेम किसी भी प्रकार के AJAX के लिए सबसे व्यवहार्य विकल्प है जिसके लिए स्टाइलिंग और स्क्रिप्टिंग को लोड करना आवश्यक है आँकड़े।

यदि आप केवल iFrame में टेक्स्ट डेटा का उपयोग करना चाहते हैं, तो इसके बजाय AJAX का उपयोग करें। यदि आप बाहरी सीएसएस या जावास्क्रिप्ट को संरक्षित वातावरण में काम करना चाहते हैं, तो स्टाइल से शुरू करने के लिए स्टाइल चाहते हैं, या क्रॉस डोमेन दस्तावेज़ों तक पहुंचने की आवश्यकता है, iFrame का उपयोग करें।

विपक्ष यह है कि iFrames की पहुंच सामान्य रूप से बेकार होती है, हालांकि आप यह सुनिश्चित करके इसे रोक सकते हैं कि आप ireadame को स्क्रीनreaders के लिए बाहरी सामग्री के नोटिस के साथ आगे बढ़ें। IFrame को अधिक सुलभ बनाने के अन्य तरीकों के लिए HTML विनिर्देशों को भी देखें। इसके अलावा और स्पष्ट सीमाएं स्क्रिप्टिंग के अनुसार, iFrame एक महान उपकरण है जिम्मेदारी से और कम इस्तेमाल किया जाता है।

एक आखिरी नोट, आईफ्रेम से भरा पृष्ठ पिल करना निश्चित रूप से एक अच्छा विचार नहीं है, क्योंकि याद रखें कि प्रत्येक लोड किए गए आईफ्रेम के लिए, एक डोम बनाया गया है, एचटीएमएल अनुरोध किए जाते हैं और दस्तावेज़ रैपर तत्काल होते हैं, मेमोरी और बैंडविड्थ खाते हैं प्रक्रिया। IFrame को पृष्ठ पर न्यूनतम रखें, और आप HTML aresenal में एक शक्तिशाली टूल को गलत तरीके से दुरुपयोग से बचेंगे।

3

आईफ्रेम वेब पेज में बाहरी सामग्री को "शामिल" करने का एक शानदार तरीका है। हालांकि, कुछ (छोटे) दोष हैं:

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

इसके अलावा, वे बहुत अच्छे हैं! यदि मैंने इसके बारे में सोचा है (स्क्रीन रीडर को छोड़कर): सिद्धांतों में, एक आईफ्रेम अपने मूल पृष्ठ के लेआउट को प्रभावित नहीं कर सकता है, और यह अपने माता-पिता द्वारा स्वयं प्रभावित नहीं होता है।

10

सकारात्मक:

:

  • बैज और विज्ञापन की तरह धीमी गति से तृतीय पक्ष सामग्री समानांतर

विपक्ष में

  • सुरक्षा सैंडबॉक्स
  • डाउनलोड स्क्रिप्ट के साथ मदद करता है
    • महंगे भले ही खाली
    • ब्लाकों पेज ऑनलोड
    • गैर अर्थ

    स्रोत: Best Practices for Speeding Up Your Web Site

  • +0

    आपके पृष्ठ पर कोई भी संसाधन पेज ऑनलोड को ब्लॉक कर सकता है, जैसे चित्र और वीडियो। अधिक आधुनिक दृष्टिकोण हमेशा DOMContentLoaded का उपयोग करता है, जो iframe अवरुद्ध नहीं होगा। और मुझे समझ में नहीं आता कि यहां गैर-अर्थात् अर्थ क्या है। महंगा होने के लिए यदि रिक्त है, तो इसके लिए संदर्भ है? – texasbruce

    +0

    आपके द्वारा स्रोत के रूप में प्रदान किया गया लिंक वास्तव में सहायक है :) – Biki

    1

    एक सामान्य नियम के रूप में, iframes एसईओ कारणों के लिए एक बुरा अनुभव कर रहे हैं। तो, आप पूछते हैं कि iframes का उपयोग न करने का कोई कारण है? हां, अगर आप iframes का उपयोग करते हैं तो आप खोज इंजन में कुछ कार्बनिक प्लेसमेंट खो रहे हैं।

    बेशक, उपयोगिता संबंधी चिंताएं हैं जो पृष्ठों के एसईओ मूल्य को ट्रम्प कर सकती हैं (और चाहिए)।

    0

    कई परिस्थितियों में उनके साथ काम करने के बाद, मुझे वास्तव में यह सोचने आया है कि iframe वेब प्रोग्रामिंग गेटो स्टेटमेंट के बराबर है। यही है, आम तौर पर कुछ बचा जाना चाहिए। एक साइट के भीतर वे कुछ हद तक उपयोगी हो सकते हैं। हालांकि, क्रॉस-साइट, वे सामग्री के सबसे सरल लेकिन किसी भी चीज़ के लिए लगभग हमेशा एक बुरा विचार हैं।

    संभावनाओं पर विचार करें ... यदि पैरामीटरयुक्त सामग्री के लिए उपयोग किया जाता है, तो उन्होंने एक इंटरफ़ेस बनाया है। और एक पेशेवर साइट में, उस इंटरफ़ेस को एक एसएलए और संस्करण प्रबंधन की आवश्यकता होती है - जिसे ऑनलाइन प्राप्त करने के लिए लगभग हमेशा अनदेखा किया जाता है।

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

    यदि लाइसेंस प्राप्त सामग्री के साथ उपयोग किया जाता है, तो भाग लेने वाली साइटें मेजबानों के बीच बैंड से एंटाइटेलमेंट जानकारी को स्थानांतरित करने की आवश्यकता से बोझ होती हैं।

    इसलिए, हालांकि, साइट के भीतर मौलिक रूप से उपयोगी, वे मैशप के बजाय अनुपयुक्त हैं। आप असली पोर्टल और पोर्टलों को देखकर बहुत बेहतर हैं। इससे भी बदतर, वे हर वेब शौकिया के प्रिय हैं - कई तकनीकी समस्याओं के समाधान के रूप में कई तकनीकी प्रबंधक ने उन्हें घेर लिया है। वास्तव में, वे और अधिक बनाते हैं।

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