iframes का उपयोग करने के लिए कोई कारण नहीं हैं? मैं वर्तमान में एक निर्बाध अनुभव प्रदान करने के लिए एक अलग सर्वर (एक साइन अप पेज - एक वितरित अनुप्रयोग का हिस्सा) से एक पृष्ठ लोड करने के लिए इसका उपयोग करता हूं। Iframes का उपयोग खराब अभ्यास माना जाता है या इसका उपयोग ठीक है?IFrame का उपयोग न करने के कारण?
उत्तर
आईफ़्रेम एक अच्छा टूल है। यह निकट-सार्वभौमिक ब्राउज़र समर्थन का आनंद लेता है, इसे कार्यान्वित करना आसान है और इसमें कई उपयोगी कार्य हैं। किसी अन्य एचटीएमएल तत्व के साथ, इसका दुरुपयोग किया जा सकता है, लेकिन बुद्धिमानी से यह एक ठोस यूआई में एक भूमिका निभा सकता है।
कुछ डेवलपर इसके बजाय AJAX का उपयोग करने का बहस कर सकते हैं, और कुछ परिस्थितियों में यह अधिक उपयुक्त दृष्टिकोण हो सकता है, लेकिन AJAX एक पैनसिया नहीं है और iframes एक बहुत ही सरल कार्यान्वयन हो सकता है जिसका आपके उपयोगकर्ताओं के लिए एक ही अंत परिणाम है। जो कुछ भी सबसे सरल है, और केवल तभी बदलें जब आप यह सत्यापित कर सकें कि यह कैसे और क्यों काम नहीं कर रहा है।
मदद कर सकता है मैं AJAX करना चाहता था लेकिन जैसा कि उल्लिखित साइन अप पेज एक अलग सबडोमेन से आ रहा है, मैं इसे नहीं कर सका (क्रॉस डोमेन समस्या) – Alex
@Alex आप हमेशा अपनी खुद की वेब सेवा लिखकर क्रॉस-डोमेन समस्या के आसपास हो सकते हैं जो अन्य डोमेन से डेटा प्राप्त करता है और फिर से प्रदर्शित करता है, और इसके बजाय * * आपके AJAX कोड से कॉल करता है। हालांकि, जैसा कि मैंने अपने जवाब में कहा था, अगर एक आईफ्रेम पहले से ही आपको पूरा करता है, तो इसे अधिक इंजीनियर न करें या आवश्यकतानुसार अधिक समय व्यतीत न करें। –
iframes का उपयोग जारी रखें। यहां एक उदाहरण दिया गया है:
वीज़ा चीज़ द्वारा पूरी तरह से सत्यापित वास्तव में मुझे परेशान करता है। मैं किसी साइट पर खुशी से खरीदारी कर रहा हूं, जिस पर मुझे विश्वास है, जब मुझे किसी साइट पर रीडायरेक्ट किया जाता है, मैंने कभी नहीं सुना है ( वीजा.com) और मुझे कुछ अन्य फॉर्म भरना होगा और उम्मीद है कि मुझे सही तरीके से रीडायरेक्ट किया जाएगा शॉपिंग साइट पर वापस।
फिर हाल ही में मैं जॉन लुईस वेबसाइट पर खरीदारी कर रहा था, और उन्होंने एक आईफ्रेम में सत्यापित द्वारा वीज़ा पृष्ठ लाया - अद्भुत! मैं अभी भी जॉन लुईस साइट देख रहा हूं, और जो कुछ भी हो रहा है, वह है कि मुझे अपने सत्यापित वीजा पासवर्ड के लिए कहा जा रहा है - कोई समस्या नहीं।
हालांकि एक वेब डेवलपर के रूप में मुझे पता है कि उसमें एक सादा पुराना रीडायरेक्ट-वहां-रीडायरेक्ट-बैक के बीच कोई तकनीकी अंतर नहीं है, उपयोगकर्ता अनुभव इतना बेहतर है!
यह एक बिंदु है, लेकिन मैं क्रेडिट कार्ड डेटा दर्ज करते समय विपरीत कहूंगा, मैं पूरी तरह से सत्यापित वीजा (पेपैल) वेबपृष्ठ (पता बार में आसानी से दिखाई देने वाले यूआरएल के साथ) में अपने क्रेडिट कार्ड में प्रवेश करने के बजाय पूरी तरह से पसंद करना पसंद करूंगा किसी की वेबसाइट के आईफ्रेम में डेटा। –
@ मार्को डेमायो: सत्यापित द्वारा वीज़ा पृष्ठ में एक सुरक्षा वाक्यांश शामिल है जिसे मैंने योजना के साथ पंजीकृत करते समय दर्ज किया था, इसलिए मुझे पता है कि यह वास्तविक है। हां, सिद्धांत रूप में जॉन लुईस में कोई भी वीज़ा सामग्री द्वारा सत्यापित किया जा रहा है और मेरे परिणामों को सूँघ रहा है, लेकिन यही कारण है कि मैंने कहा "मैं उस साइट पर खुशी से खरीदारी कर रहा हूं जिस पर मेरा भरोसा है" - मुझे विश्वास है कि जॉन लुईस ऐसा नहीं करते हैं। और सत्यापित द्वारा वीज़ा के लिए यूआरएल कुछ पते के लिए है जिसे आपने कभी भी नहीं सुना है, इसलिए इसे वास्तव में * आपके विश्वास को कम कर देता है। – RichieHindle
iframes के पास मूल दस्तावेज़ के कुछ गुणों तक पहुंच है, उदा। parent.location.href
या parent.window.location
(IE को प्रतिबंधित करने की अनुमति देता है) का उपयोग करके पैरेंट फ्रेम को नए स्थान पर रीडायरेक्ट करें।
यह अन्य सर्वरों से सामग्री एम्बेड करते समय फ़िशिंग हमलों के लिए बहुत अच्छा है (भले ही आप उस सर्वर पर भरोसा करते हैं, इससे समझौता किया जा सकता है)।
iframes का इस्तेमाल कई अन्य हमलों के लिए भी किया जा सकता है: IFrames security summary।
एचटीएमएल 5 के साथ आप विंडो से विंडो भेजने के लिए क्रॉस दस्तावेज़ मैसेजिंग एपीआई का उपयोग करने में सक्षम होंगे, लेकिन अब के लिए आईफ्रेम किसी भी प्रकार के AJAX के लिए सबसे व्यवहार्य विकल्प है जिसके लिए स्टाइलिंग और स्क्रिप्टिंग को लोड करना आवश्यक है आँकड़े।
यदि आप केवल iFrame में टेक्स्ट डेटा का उपयोग करना चाहते हैं, तो इसके बजाय AJAX का उपयोग करें। यदि आप बाहरी सीएसएस या जावास्क्रिप्ट को संरक्षित वातावरण में काम करना चाहते हैं, तो स्टाइल से शुरू करने के लिए स्टाइल चाहते हैं, या क्रॉस डोमेन दस्तावेज़ों तक पहुंचने की आवश्यकता है, iFrame का उपयोग करें।
विपक्ष यह है कि iFrames की पहुंच सामान्य रूप से बेकार होती है, हालांकि आप यह सुनिश्चित करके इसे रोक सकते हैं कि आप ireadame को स्क्रीनreaders के लिए बाहरी सामग्री के नोटिस के साथ आगे बढ़ें। IFrame को अधिक सुलभ बनाने के अन्य तरीकों के लिए HTML विनिर्देशों को भी देखें। इसके अलावा और स्पष्ट सीमाएं स्क्रिप्टिंग के अनुसार, iFrame एक महान उपकरण है जिम्मेदारी से और कम इस्तेमाल किया जाता है।
एक आखिरी नोट, आईफ्रेम से भरा पृष्ठ पिल करना निश्चित रूप से एक अच्छा विचार नहीं है, क्योंकि याद रखें कि प्रत्येक लोड किए गए आईफ्रेम के लिए, एक डोम बनाया गया है, एचटीएमएल अनुरोध किए जाते हैं और दस्तावेज़ रैपर तत्काल होते हैं, मेमोरी और बैंडविड्थ खाते हैं प्रक्रिया। IFrame को पृष्ठ पर न्यूनतम रखें, और आप HTML aresenal में एक शक्तिशाली टूल को गलत तरीके से दुरुपयोग से बचेंगे।
आईफ्रेम वेब पेज में बाहरी सामग्री को "शामिल" करने का एक शानदार तरीका है। हालांकि, कुछ (छोटे) दोष हैं:
- सुरक्षा सैंडबॉक्सिंग जावास्क्रिप्ट के साथ समस्याएं पैदा करेगी यदि IFrame एक ही डोमेन से उत्पन्न नहीं होता है।
- आप आईफ़्रेम और अभिभावक पृष्ठ के बीच सह-संचालन करने के लिए सीएसएस नहीं प्राप्त कर सकते हैं, जब तक कि आप स्वयं स्टाइलशीट को नियंत्रित न करें।
- एक सूचकांक बिंदु से, IFrame की सामग्री मौजूद नहीं है।
- स्क्रीन पाठकों को इसी कारण से IFrame पसंद नहीं है। या वे IFrame की सामग्री के सापेक्ष अर्थ को सही ढंग से इंगित करने में सक्षम नहीं होंगे।
इसके अलावा, वे बहुत अच्छे हैं! यदि मैंने इसके बारे में सोचा है (स्क्रीन रीडर को छोड़कर): सिद्धांतों में, एक आईफ्रेम अपने मूल पृष्ठ के लेआउट को प्रभावित नहीं कर सकता है, और यह अपने माता-पिता द्वारा स्वयं प्रभावित नहीं होता है।
सकारात्मक:
:- बैज और विज्ञापन की तरह धीमी गति से तृतीय पक्ष सामग्री समानांतर
विपक्ष में
- महंगे भले ही खाली
- ब्लाकों पेज ऑनलोड
- गैर अर्थ
आपके पृष्ठ पर कोई भी संसाधन पेज ऑनलोड को ब्लॉक कर सकता है, जैसे चित्र और वीडियो। अधिक आधुनिक दृष्टिकोण हमेशा DOMContentLoaded का उपयोग करता है, जो iframe अवरुद्ध नहीं होगा। और मुझे समझ में नहीं आता कि यहां गैर-अर्थात् अर्थ क्या है। महंगा होने के लिए यदि रिक्त है, तो इसके लिए संदर्भ है? – texasbruce
आपके द्वारा स्रोत के रूप में प्रदान किया गया लिंक वास्तव में सहायक है :) – Biki
एक सामान्य नियम के रूप में, iframes एसईओ कारणों के लिए एक बुरा अनुभव कर रहे हैं। तो, आप पूछते हैं कि iframes का उपयोग न करने का कोई कारण है? हां, अगर आप iframes का उपयोग करते हैं तो आप खोज इंजन में कुछ कार्बनिक प्लेसमेंट खो रहे हैं।
बेशक, उपयोगिता संबंधी चिंताएं हैं जो पृष्ठों के एसईओ मूल्य को ट्रम्प कर सकती हैं (और चाहिए)।
कई परिस्थितियों में उनके साथ काम करने के बाद, मुझे वास्तव में यह सोचने आया है कि iframe वेब प्रोग्रामिंग गेटो स्टेटमेंट के बराबर है। यही है, आम तौर पर कुछ बचा जाना चाहिए। एक साइट के भीतर वे कुछ हद तक उपयोगी हो सकते हैं। हालांकि, क्रॉस-साइट, वे सामग्री के सबसे सरल लेकिन किसी भी चीज़ के लिए लगभग हमेशा एक बुरा विचार हैं।
संभावनाओं पर विचार करें ... यदि पैरामीटरयुक्त सामग्री के लिए उपयोग किया जाता है, तो उन्होंने एक इंटरफ़ेस बनाया है। और एक पेशेवर साइट में, उस इंटरफ़ेस को एक एसएलए और संस्करण प्रबंधन की आवश्यकता होती है - जिसे ऑनलाइन प्राप्त करने के लिए लगभग हमेशा अनदेखा किया जाता है।
यदि सक्रिय सामग्री के लिए उपयोग किया जाता है - फ़्रेम होस्ट होस्ट करता है - तो क्रॉस डोमेन स्क्रिप्ट प्रतिबंध (अलग) हैं। कुछ को हैक किया जा सकता है, लेकिन शायद ही कभी लगातार। और यदि आपकी तैयार सामग्री को इंटरैक्टिव होने की आवश्यकता है, तो यह फ्रेम से परे ऐसा करने के लिए संघर्ष करेगा।
यदि लाइसेंस प्राप्त सामग्री के साथ उपयोग किया जाता है, तो भाग लेने वाली साइटें मेजबानों के बीच बैंड से एंटाइटेलमेंट जानकारी को स्थानांतरित करने की आवश्यकता से बोझ होती हैं।
इसलिए, हालांकि, साइट के भीतर मौलिक रूप से उपयोगी, वे मैशप के बजाय अनुपयुक्त हैं। आप असली पोर्टल और पोर्टलों को देखकर बहुत बेहतर हैं। इससे भी बदतर, वे हर वेब शौकिया के प्रिय हैं - कई तकनीकी समस्याओं के समाधान के रूप में कई तकनीकी प्रबंधक ने उन्हें घेर लिया है। वास्तव में, वे और अधिक बनाते हैं।
- 1. टाइपकिट का उपयोग न करने के कारण?
- 2. डेटाबेस कनेक्शन पूलिंग का उपयोग न करने का कारण?
- 3. शीर्ष कारण EJB 3.0 का उपयोग न करने का शीर्ष कारण?
- 4. क्या यूनिट लागू करने वाले प्रकारों का उपयोग न करने का कोई कारण है?
- 5. इंटरफ़ेस के बजाय अमूर्त कक्षा का उपयोग न करने का कारण?
- 6. दो तारों को जोड़ने के लिए '+' का उपयोग न करने का कोई कारण नहीं है?
- 7. iframe लंबवत स्क्रॉलबार के कारण 100% ऊंचाई
- 8. UIView ओवरराइडिंग drawRect कारण मास्क का पालन न करने का कारण बनता है ToBounds
- 9. SQLAlchemy पर SQLObject का उपयोग न करने के किसी भी कारण से?
- 10. क्या इस "(" सेल्फ "," मी ", ...) का उपयोग न करने के कोई कारण हैं?
- 11. XIB फ़ाइलों का उपयोग न करने के अच्छे कारण क्यों हैं?
- 12. एमआरआई/याएआरवी पर जेआरबीआई का उपयोग न करने के मेरे पास क्या कारण होंगे?
- 13. विचारों का उपयोग करने के लिए या विचारों का उपयोग न करने के लिए
- 14. SQL सर्वर में लिंक किए गए सर्वर का उपयोग न करने का कारण?
- 15. 'नया ऑब्जेक्ट()। Foo() `का उपयोग न करने का कोई कारण नहीं है?
- 16. क्या 'संरक्षित' गुणों का उपयोग न करने का कोई कारण है?
- 17. ईएफ इकाइयों के संदर्भों का उपयोग करके नेस्टेड का उपयोग न करने का कोई कारण नहीं है?
- 18. एचटीएमएल तत्वों के क्रम को पुन: व्यवस्थित करने के लिए सीएसएस का उपयोग न करने के कारण
- 19. पासवर्ड हैशिंग के लिए क्या उपयोग करें? JBCrypt का उपयोग न करने का कोई कारण नहीं है?
- 20. आईओएस डेटा स्टोरेज दिशानिर्देशों का पालन न करने के कारण आवेदन अस्वीकार कर दिया गया
- 21. क्या कोई अच्छा कारण है कि स्ट्रिंग के विपरीत यूनिकोड का उपयोग न करें?
- 22. क्या कोई कारण है कि किसी फ़ंक्शन के लिए INLINABLE Pragma का उपयोग न करें?
- 23. क्या वस्तुओं का निर्माण करते समय std :: make_shared का उपयोग न करने का कोई कारण नहीं है?
- 24. उपयोग करने के कारण (या नहीं) stdint
- 25. एनम्स पर एनएसएसटींग स्थिरांक का उपयोग करने के कारण?
- 26. 'exampleof function() {}' का उपयोग करने के पीछे कारण?
- 27. पठनीय SQLite डेटाबेस का उपयोग करने के कारण
- 28. हाइबरनेट में एनम का उपयोग करने के कारण अपडेट स्टेटमेंट
- 29. अभी भी सीवीएस का उपयोग करने के किसी भी कारण?
- 30. ट्विटर बूटस्ट्रैप iFrame उपयोग?
यह प्रश्न देखें: http://stackoverflow.com/questions/362730/are-iframes-cononsidered-bad-practice –
FYI: एकाधिक उत्तर महान हैं। उन सभी को देखें, न केवल स्वीकार किए गए एक। – Alex
[यह] (http://stackoverflow.com/a/362752/1257607) – DanielV