2009-10-21 9 views
5

Microsoft, Internet Explorer 7'de yerel XMLHttpRequest nesnesini nihayet ekledi, ancak bunun Internet Seçenekleri iletişim kutusunda devre dışı bırakılabileceğini öğrendim. Yani XMLHttpRequest() ActiveXObject ("Microsoft.XMLHTTP") vs kullanarak yarar var?XMLHttpRequest() vs ActiveXObject ("Microsoft.XMLHTTP") - ne anlamı var?

Devre dışı bırakılabiliyorsa, bu, tarayıcı uyumluluk kontrollerini sonsuza kadar sürdürmemiz gerektiği anlamına gelir, değil mi? XMLHttpRequest() ActiveXObject ("Microsoft.XMLHTTP") veya daha hızlı başlatır mı? Microsoft neden ekliyor ve isteğe bağlı yapıyor?

+0

Firefox'a özel sayfalar için uyumluluk olabilir mi? – Xinus

+0

@Rubens Farias, olması amaçlanıyor. Sadece IE7 + (başka bir tarayıcı yok) ile çalışıyorum, bu yüzden gerçekten de XMLHttpRequest için kontrol etmem gerektiğini veya sadece ActiveXObject() –

+0

için doğrudan doğruya gidip gitmeyeceğimi bilmek istiyorum. Sadece IE7 + ile çalışıyorsanız, doğrudan XmlHttpRequest ile çalışabilirsiniz, sadece güvenlik istisnasını yakalayın Bir deneme/yakalamada, yani doğrudan veya dolaylı olarak devre dışı olduğu anlamına gelir. ActiveX yaklaşımını tercih ederseniz, iç uygulamanın oldukça farklı olduğunu (yüklenen DOM ile uyumsuz, dönüştürmesi gerekir) ve daha yavaş ve ActiveX'in oldukça sık devre dışı bırakıldığını unutmayın. – Abel

cevap

5

ActiveXObject ayrıca devre dışı bırakılabilir. Diğer tarayıcıların bunu ve diğer ayarları da devre dışı bırakabileceğini unutmayın. Bu, tarayıcı uyumluluğuyla ilgili değil, kullanıcı tercihiyle ilgilidir. Kullanıcılar, etki alanları arası isteklere izin verebilir/izin veremez, komut dosyalarına izin verebilir/izin veremez, Flash'a izin veremez veya bunlara izin veremez.

Kullanıcılar devre dışı bırakıldıklarında sayfanızın hala düzgün çalışıp çalışmadığını (veya inceliksiz bir şekilde düştüğünü) kontrol etmeniz gerekir. İhtiyacınız olan belirli tarayıcı özellikleri.

İyi haber şu: varsayılan olarak etkindir, çoğu kullanıcı bunu etkinleştirir.

Güncelleme: Varsayılan olarak, komut dosyası ve dış istekleri tarafından (yani XML XSLT veya dış varlıklarla document(), xsl:include) XmlHttpRequest -retrieved nesneler tarafından desteklenmez ve açıkça etkinleştirilmesi gerekir. Bu, IE dışındaki tarayıcılardan farklıdır; burada XHR yüklenen belgelere harici isteklere izin verilir (veya Safari ve Chrome'da olduğu gibi).

+1

'İyi haber şu şekildedir: varsayılan olarak etkinleştirilmiştir, çoğu kullanıcı bunu kullanacaktır. '- Bu yüzden soruyu sordum, kullanıcılarımızdan birinin açık olmadığını öğrendim ve uygulamaya neden oluyordu başarısız. O zamana kadar devre dışı bırakılabileceğini bile bilmiyordum. –

2

Bu bir tahmindir, ancak JavaScript'in devre dışı bırakılmasına izin vermelerinin aynı nedenden dolayı devre dışı bırakılmasına izin verdiklerini varsayardım. Bazı insanlar risklerin (gizlilik, güvenlik, her neyse) yararından daha fazla olduğuna ve bu nedenle de engellenmesini istediğine inanmaktadır.

+0

ActiveXObject ile birlikte devre dışı bırakılmış olsaydı bunu anlayabiliyordum. Ama aslında XMLHttpRequest'i devre dışı bırakabilir ve hala ActiveXObject ("Microsoft.XMLHttpRequest") kullanabilirsiniz. –