Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ajax misterije - 1 - inicijacija xmlhttprequest objekta

[es] :: Javascript i AJAX :: Ajax misterije - 1 - inicijacija xmlhttprequest objekta

[ Pregleda: 2775 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.ADSL.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Ajax misterije - 1 - inicijacija xmlhttprequest objekta13.07.2006. u 21:15 - pre 216 meseci
Nekako je javascript predmet misterije, makar je to utisak koji sam stekao gledajući popularnost programiranja za web, pre svega ekspanziju php developera ... i često se tu provlači teza da ljudi priznaju kako su slabi sa javascriptom. Iskreno ne vidim toliki razlog za strah od tog jezika, čak je i lep na svoj način.

Šta da kažem - nije strašno nešto ne znati - hajde da vidimo ima li razloga da tako ostane, ili - hajde da se nešto nauči :-D

Danas je web već dovoljno velika biblioteka da praktično za svako postavljeno pitanje može da usledi odgovor "koristi pretragu"... No, hm, a da lagano kroz priču dođemo do istog? Mislim da to ima određenog šmeka...

Ova tema je probni balon, obzirom da je ovaj forum trenutno prilično zamro, izgleda kao da nema o čemu da se priča - hajde da se vidi ;-)

...

Javascript je u stvari u poslednje vreme iskočio u prvi plan (ili tu negde) obzirom da je jedna sitnica postala izuzetno popularna - Ajax!

Neko već ima iskustva s tim, više ili manje, neko nema, ali ovo može biti mesto za razmenu iskustava. Krenuću odmah s konkretnim primerom:

http://developer.mozilla.org/en/docs/AJAX:Getting_Started
Code:
        var http_request = false;

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
                // See note below about this line
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }

Ovo parče koda pozajmljeno je sa stranice linka iznad, gde inače može da se nađe neka uvodna priča o Ajaxu.

Inače, sam isečak koda prikazuje inicijaciju xmlhttprequest objekta u realnom svetu, kada javascript treba da koriste različiti browseri. ... (sam xmlhttprequest je u stvari objekat koji omogućava Ajax funkcionalnost - slanje zahteva i dovlačenje novog sadržaja bez učitavanja nove stranice)

Ja sam praktično testirao ovaj kod na Firefoxu i IE - radi mi Ok. Interesuje me da li je to dovoljno, ima li možda neki nepokriveni slučaj?

U svakom slučaju - interesuju me iskustva u radu s Ajaxom!
- Ukoliko sami pišete kod - na koji način rešavate ovaj početni korak?
- Ukoliko za Ajax koristite neku od popularnih biblioteka - virnite malo u taj kod i zalepite ovde parče koda vezano za inicijaciju objekta - da vidimo ima li nekih novih momenata.

Ako je bilo šta nejasno - postavljajte pitanja.
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta13.07.2006. u 21:45 - pre 216 meseci
Za koji je tačno browser ovo Msxml2? Pošto je Microsoft.XMLHTTP radilo u svakom eksploreru koji sam probao.

U kodu ES-a za ajax je korišćeno samo:

Code:

    try {
        xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():
            new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) {
        alert('Browser ne podrzava ajax');
    }


Nisam primetio da se neko žalio da ne radi, a i 99.9% korisnika dolazi sa well known IE, Firefox i Opera browserima danas, pa je pitanje vredi li se uopšte "cimati" oko ostatka.

Probao sam nekoliko biblioteka i nisam se usudio da koristim ijednu od njih. Prototype je verovatno delovao najzrelije, ali dok nešto stvarno ne postane defacto standard, nekako sam zaključio da je najbolje pisati sopstvenu ajax funkcionalnost. (ajax kod u ES-u nije za primer pošto je još uvek work in progres, neke stvari su duplirane na stranici itd, a to bi trebalo da se reši jednom univerzalnom javascript bibliotekom sa potrebnim funkcijama za ceo sajt, koju eto neko treba i da napiše).

Dobra ideja za temu btw, samo napred.
 
Odgovor na temu

kukipei
Niš

Član broj: 19564
Poruke: 164
*.adsl.sezampro.yu.

Sajt: www.bestbetinfo.com


Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta13.07.2006. u 22:02 - pre 216 meseci
Pozdrav svima,

Za AJAX sam cuo pre oko 2 meseca i odusevio se.
Odmah sam krenuo sa ispravljanjem svog sajta da koristi AJAX tehnologiju.
To je dosta ubrzalo sajt.

evo dokle sam stigao:
http://www.gensunasumus.com/movebymoveajax/mbymajax.php

Inace za inicijalizaciju XMLHttpRequest objekta koristim sledeci kod:



Code:
function getHTTPObject() 

    var xmlhttp; 

    try 
    {
        xmlhttp = new XMLHttpRequest();
//        xmlhttp.overrideMimeType('text/xml');
      }
    catch (trymicrosoft)
    {
        try
        {
              xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (othermicrosoft)
        {
            try
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (failed)
            {
                xmlhttp = false;
              }
        }
      }
    if (!xmlhttp)
        alert("Error initializing XMLHttpRequest!");
    return xmlhttp; 

var http = getHTTPObject();


Sajt dobro radi u IE 6, Firefox-u i Operi 9.
Pozdrav
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta13.07.2006. u 22:06 - pre 216 meseci
Citat:
Za koji je tačno browser ovo Msxml2? Pošto je Microsoft.XMLHTTP radilo u svakom eksploreru koji sam probao.

Pa normalno je da ćeš koristiti noviju verziju parsera, ako je korisnik (brauzer) ima instaliranu. Ne znam tačne razlike, ali pretpostavljam da je, pored bug fixeva, u novijoj verziji parsera porađeno i na performansama. Drugim rečima, radiće i ovako i onako, ali postoji šansa da je ovako, iz ovog ili onog razloga, bolje.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.ADSL.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta13.07.2006. u 22:51 - pre 216 meseci
Da, rekao bih da je tako - onako radi svakako, a ovako bi trebalo da radi bolje...

Evo, virnuo sam i u prototype
Code:
var Ajax = {
  getTransport: function() {
    return Try.these(
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
      function() {return new ActiveXObject('Microsoft.XMLHTTP')},
      function() {return new XMLHttpRequest()}
    ) || false;
  },

  activeRequestCount: 0
}


Koristi se ista fora, a Version list for the Microsoft XML parser mi daje ideju da ima smisla probati i sa msxml4 i msxml3 pre msxml2 - ne može da škodi :-)

@kukipei - šah sa http://www.elitesecurity.org/t...uvanje-sahovskih-pozicija-bazi ;-)

[Ovu poruku je menjao noviKorisnik dana 14.07.2006. u 00:12 GMT+1]
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta14.07.2006. u 06:51 - pre 216 meseci
Code:

function getRequestObject()    {
  var req = null;
  if (typeof XMLHttpRequest != "undefined")
    req = new XMLHttpRequest();
  if (!req && typeof ActiveXObject != "undefined") {
    try {
      req=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        req=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e2) {
        try {
          req=new ActiveXObject("Msxml2.XMLHTTP.4.0");
        }
        catch (e3) {
          req=null;
        }
      }
    }
  }
  if(!req && window.createRequest)
    req = window.createRequest();
  return req;
}

Banned - Not available
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta14.07.2006. u 08:47 - pre 216 meseci
Citat:
noviKorisnik: Da, rekao bih da je tako - onako radi svakako, a ovako bi trebalo da radi bolje...

Evo, virnuo sam i u prototype

Ovo Try.these() je skroz perverzno. ;) JavaScript je stvarno moćan jezik...
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
212.200.25.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta14.07.2006. u 11:00 - pre 216 meseci
To su vec prototype perverzije, zato mi se i svidja paket, napravili su lepu apstrakciju.
Code:
var Try = {
  these: function() {
    var returnValue;

    for (var i = 0; i < arguments.length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) {}
    }

    return returnValue;
  }
}

 
Odgovor na temu

zerostyle
Damir Basic
INTERNET KLUB EXTREME

Član broj: 10633
Poruke: 260
*.rb.a.2-1.230.bih.net.ba.



Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta03.09.2006. u 16:59 - pre 214 meseci
jel ko zna kako koristiti prototype za ucitavanje podataka u neki layer, recimo da zelim u layer PODRSKA da ucitam podatke sa linka default.asp?ID=45 , ili jednostavno sa linka podaci.htm, znaci ja sa strane kliknem na link, a on u layeru ucita podatke , naravno koristeci prototype , tj aculo biblioteke.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.ADSL.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta04.09.2006. u 00:23 - pre 214 meseci
http://www.sergiopereira.com/a...prototype.js.html#Ajax.Updater
 
Odgovor na temu

zerostyle
Damir Basic
INTERNET KLUB EXTREME

Član broj: 10633
Poruke: 260
*.rb.a.2-1.230.bih.net.ba.



Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta05.09.2006. u 13:37 - pre 214 meseci
Ovo sam ja imao ali nije bas jasno, da mi je nac jedan primjer na gotovo da ne sklapama ja sad sta trebam a sta ne.

Ako je ko radio molim za pomoc, samo jedan mali primjer.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.ADSL.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta05.09.2006. u 19:52 - pre 214 meseci
Stvarno, toliko je teško pročitati ... evo opet link na istu stranicu, ovog puta na primer upotrebe - http://www.sergiopereira.com/a...otype.js.html#UsingAjaxUpdater
 
Odgovor na temu

zerostyle
Damir Basic
INTERNET KLUB EXTREME

Član broj: 10633
Poruke: 260
*.rb.a.2-1.230.bih.net.ba.



Profil

icon Re: Ajax misterije - 1 - inicijacija xmlhttprequest objekta15.09.2006. u 12:59 - pre 214 meseci
Jel ima ko iskustva sa ajaxom , da mi pomogne oko sređivanja naprijed , nazad i refresh dugmica, tj da rade.

Nasao sam jedno super rjesenje ako kome zatreba:

http://www.onjava.com/pub/a/on...bookmarks-and-back-button.html

Međutim imam malo slozeniju situaciju ne zelim raditi na nacin kako je to rađeno tu vec koristiti prototype.

I sta vi mislite ako implementiram ovo na stranicu dali cu imat posljedica sa googleom, tj interesuje me dali ce on vidjet te linkove. Koliko je zapravo uopce dobro koristiti ajax za prikaz kategorija vijesti i podnaslova tih kategorija.

Bas razmisljam mozda je bolja solucija napraviti standardno vijesti, clanke i sve to, a ajax implementirat na neke sitnice kao kod pretrage, komentara, kontakt formulara, nekih sitnica koje ce uciniti zivot na webu ljepsim.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Ajax misterije - 1 - inicijacija xmlhttprequest objekta

[ Pregleda: 2775 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.