2011-01-04 4 views
2

Ich benutze Ajax und jQuery, um ein paar coole clientseitige Sachen zu machen. Wenn der Benutzer ein Thema aus einer Dropdown-Liste auswählt, möchte ich die Seite automatisch mit einer Reihe von Buchdetails füllen.Ist das State-of-the-Art Ajax/jQuery, oder sollte ich es anders machen?

Allerdings habe ich die Ajax von Google-Ergebnissen und Bit-Strings gebaut. Ich weiß nicht, ob das, was ich getan habe, auf dem neuesten Stand ist, oder ob es jetzt viel bessere Möglichkeiten gibt, es zu tun!

Hier ist, was ich habe: kann es verbessert werden?

$("#subjectlist").change(function() { 
     if (window.XMLHttpRequest) { 
      xmlhttp=new XMLHttpRequest(); 
     } else { 
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.onreadystatechange=function() { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
       var book_details = eval(xmlhttp.responseText); 
       alert(book_details[0]["url"]); 
       // To be added: extra code to populate HTML results. 
       document.getElementById("book_results").innerHTML=xmlhttp.responseText; 
      } 
     } 
     xmlhttp.open("GET","/subject_json/?id=" + $("#subjectlist").val(),true); 
     xmlhttp.send(); 
    }); 

Danke für jeden Hinweis!

Antwort

3

Sie können wahrscheinlich diesen gesamten Funktionskörper in einen einzigen .load() Aufruf abkürzen. Überprüfen Sie auch den Rest der jQuery AJAX functions.

+0

Oh, toll, sieht aus wie http://api.jquery.com/jQuery.getJSON/ ist was ich brauche. Vielen Dank! – AP257

1

Was Sie tun, ist die Ajax-Anfrage selbst zu codieren. Das ist nicht nötig, denn jQuery hat eine ganze Klasse von Ajax methods, die das für Sie automatisiert.

Einige von ihnen automatisieren auch die Verarbeitung der vom Ajax-Aufruf zurückgegebenen Inhalte. In diesem speziellen Fall wird load großartig funktionieren, wie deceze sagt.

Verwandte Themen