AJAX működik-e adott böngészőben, környezetben
2011-01-17T13:22:22+01:00
2011-01-17T16:42:53+01:00
2022-07-19T16:00:39+02:00
arix
Üdv,

Nekem az a kérdésem, hogy van-e olyan környezet ahol ha van javascript az ajax nincs valamilyen módon megvalósítva?
Írok egy weblapot ami használ ajaxot, viszont azt szeretném, hogy ha egy adott környezetben (mondjuk iOS-n - ott nem tudom működik-e) nem működik, akkor az oldal írjon valami hibaüzenetet ki.
Szóval, van-e valami biztos módszer arra, hogy tesztelhessem, hogy van-e ajax. (jQuery ajax fv-it használom).

Vagy egyszerűen csak ott nem megy az ajax ahol nincs js sem?

arix
Mutasd a teljes hozzászólást!
Akkor végülis a jQuery csak ezt a 2 objektumot használja az ajaxhoz? (Attól függően, hogy milyen környezetben használjuk)
Mert ha igen, akkor szerintem elég egy olyan vizsgálat, hogy ha mindkettő undefined akkor nem fog működni az ajax.
Vagy tévedek?
Mutasd a teljes hozzászólást!

  • A mobil böngészők még nem tartanak mindenben ott, ahol az asztali gépek böngészői, szal elképzelhető, hogy ami megy egy asztali böngészőn az nem megy egy mobilon. Egyébként az asztali böngészők régebbi változataiban van ugyan js, de nincsen xmlhttprequest.

    Az AJAX-hoz az xmlhttprequest objektum valamilyen válozatát kell az adott böngészőnek implementálnia. A jquery (és a többi nagy keretrendszer is) végez tesztelést, hogy az xmlhttprequest elérhető-e valamilyen formában és hibát jelez, ha nem. Azt nem tudom, hogy IOS böngésző(k) terén ez az ellenőrzés mennyire létezik.

    Ha nincs js egy platformon, akkor értelem szerűen semmilen js kód nem fog működni. De azért ez már elég ritka.
    Mutasd a teljes hozzászólást!
  • AZ iOS-t csak példaként mondtam, mert azt nem ismerem, de pl. Androidon lévő böngészővel működik.
    Azt írtad, hogy a jQuery végez ellenőrzést. Akkor végülis a kérdésem az az, hogy ennek az ellenőrzésnek honnan tudom meg az eredményét? Vagy hogy működik ez?

    Az ajaxError() pont erre való esetleg?
    Mutasd a teljes hozzászólást!
  • Vagy simán az error eseménykezelőjét használd az .ajax() hívásnak.
    Mutasd a teljes hozzászólást!
  • legfrisebb 1.4.4 -es jqueryben nem találtam semmilyen ellenőrzést erre vonatkozóan. 5750. sor környékén ennyi van:

    xhr: function() { return new window.XMLHttpRequest(); }

    illetve párszáz sorral lejjebb leellenőrzi, hogy van-e
    window.ActiveXObject
    objektum, ha van akkor a felső függvényt lecseréli egy másikra (~6270. sor)

    Emulálni úgy próbáltam, hogy a window.XMLHttpRequest-nek undefined-et vagy null-t adtam, ezzel meg is hal:
    Hiba: window.XMLHttpRequest is not a constructor


    ---

    Próbálj meg szerezni valamilyen eszközt amiben van js de nincs ajax, és alertezd ki a window.XMLHttpRequest objektumot.

    ---

    Sting előbb írt egy hírt miszerint újraírják az ajax motort és lehet kerül bele valamilyen plusz ellenőrzés az 1.5-ös jquery-be.
    Mutasd a teljes hozzászólást!
  • illetve párszáz sorral lejjebb leellenőrzi, hogy van-e window.ActiveXObject objektum, ha van akkor a felső függvényt lecseréli egy másikra (~6270. sor)


    Tehát végez ellenőrzést

    Mutasd a teljes hozzászólást!
  • arra végez ellenőrzést, hogy ha IE van, akkor először megnézi van-e
    window.XMLHttpRequest
    és ha nincs akkor
    window.ActiveXObject
    -ot használ.

    Tehát végez ellenőrzést


    Én olyan ellenőrzésre gondoltam, hogy ha nem sikerül neki értelmes ajax objektumot összehozni, akkor figyelmeztet(pl alert vagy callback), hogy nincs ajax, és nem lehal a teljes jquery, miközben a user várja a sült galambot.
    Mutasd a teljes hozzászólást!
  • Akkor végülis a jQuery csak ezt a 2 objektumot használja az ajaxhoz? (Attól függően, hogy milyen környezetben használjuk)
    Mert ha igen, akkor szerintem elég egy olyan vizsgálat, hogy ha mindkettő undefined akkor nem fog működni az ajax.
    Vagy tévedek?
    Mutasd a teljes hozzászólást!
  • Nem, nem tévedsz.
    Mutasd a teljes hozzászólást!
abcd