Ajax - jQuery funktioner
jQuery indeholder godt 10 funktioner, der er dedikeret til hånteringen af ajax-funktionalitet. af disse kan der udføres egentlig ajax-funktionalitet med de 6 ($.ajax() og 'shorthand'), mens de øvrige er hjælpefunktioner.
Af de 6 er ajax() den væsentligste, mens funktionerne til hentning af data bruges i mindre omfang.
Alle funktioner placeres til udførelse indenfor rammerne af Ajax scriptet. Rækkefølgen er styrende for deres anvendelse / start.
$_ajax() interface |
| $.ajax() | Eget HTTP-request |
| $.ajaxPrefilter() | Lokale tilpasninger af globale opsætninger eller andre opsætninger til ajax(). |
| $.ajaxSetop() | Global opsætning til ajax() |
| $.ajaxTransport | |
Hent filer (shorthand) |
| $.get() | Indlæser remote side med HTTP GET request. |
| $.getJSON() | Indlæser JSON-fil med HTTP GET request. |
| $.getScript() | Indlæser og udfører javaScript-fil med HTTP GET request. |
| $.post() | Indlæser remote side med HTTP POST request. |
| load() | Indlæser HTML fra remote fil og indsætter den i DOM. |
Serialisering: <FORM ..>-data |
| $.param() | Etablerer en seriel tekststreng ud fra enhver array eller objekt. Kan bruges i 'URL query string' i et ajax request. |
| serialize() | Etablerer en seriel tekststreng ud fra $_POST- og $_GET-data. |
| serializeArray() | Etablerer en seriel tekststreng og returnerer en JSON-fil ud fra $_POST- og $_GET-data. |
Low level interface |
$.ajax() | Etablerer sit eget HTTP-request til et selvstændigt server-program uden at påvirke den 'aktuelle' HTTP-session. Den er nærmest synonyn med 'ajax'. | async, beforeSend(xhr), cache, complete(xhr,status), contentType, context, data, dataFilter(data,type), dataType, error(xhr,status,error), global, ifModified, jsonp, jsonpCallback, password, processData, scriptCharset, success(result,status,xhr), timeout, traditional, type, url, username, xhr
$(document).ready(function(){
$("button").click(function(){
$.ajax({url:"ajaxfile.txt",
success:function(result){
$("div").html(result);
}
});
});
});
|
|    |
$.ajaxPrefilter() | Lokale tilpasninger af globale opsætninger eller andre opsætninger til ajax(). | dataTypes, settings, localSettings, jqXHR
// register AJAX prefilter : options, original options
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
// retry not set or less than 2 : retry not requested
if( !originalOptions.retryMax || !originalOptions.retryMax >=2 ) return;
// no timeout was setup
if( !originalOptions.timeout >0 ) return;
if( originalOptions.retryCount ) {
// increment retry count each time
originalOptions.retryCount++;
}else{
// init the retry count if not set
originalOptions.retryCount = 1;
// copy original error callback on first time
originalOptions._error = originalOptions.error;
};
// overwrite error handler for current request
options.error = function( _jqXHR, _textStatus, _errorThrown ){
// retry max was exhausted or it is not a timeout error
if( originalOptions.retryCount >= originalOptions.retryMax || _textStatus!='timeout' ){
// call original error handler if any
if( originalOptions._error ) originalOptions._error( _jqXHR, _textStatus, _errorThrown );
return;
};
// Call AJAX again with original options
$.ajax( originalOptions);
};
});
|
|   |
$.ajaxSetup() | Global opsætning af afvigelser fra default parametre til brug for $.ajax() requests til serveren. Anvendelse frarådes. | async, beforeSend(xhr), cache, complete(xhr,status), contentType, context, data, dataFilter(data,type), dataType, error(xhr,status,error), global, ifModified, jsonp, jsonpCallback, password, processData, scriptCharset, success(result,status,xhr), timeout, traditional, type, url, username, xhr
$.ajaxSetup({
dataFilter: function(data) {
var data = JSON.parse(data);
delete data.redirect;
return JSON.stringify(data);
}
});
|
|    |
$.ajaxTransport() | Opbygger et objekt, der håndterer aktuel transmission af ajax data. | dataType, handler |
|  |
Hentning af data (kaldes samlet: shorthand methods) |
$.get() | Indlæser remote side med HTTP GET request. | URL, data, function(data,status,xhr), dataType
$("button").click(function(){
$.get("demo_test.asp", function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});
The first parameter of $.get() is the URL we wish to request ("demo_test.asp").
The second parameter is a callback function. The first callback parameter holds the content of the page requested, and the second callback parameter holds the status of the request
|
|    |
$.getJSON() | Indlæser JSON-fil med HTTP GET request. | url, data, success(data,status,xhr)
$("button").click(function(){
$.getJSON("demo_ajax_json.js", function(result){
$.each(result, function(i, field){
$("div").append(field + " ");
});
});
});
|
|    |
$.getScript() | Indlæser og udfører javaScript-fil med HTTP GET request. | url, success(response,status)
$("button").click(function(){
$.getScript("demo_ajax_script.js");
});
|
|    |
$.post() | Indlæser remote side med HTTP POST request. | URL, data, function(data,status,xhr), dataType
$.post(
"result.php",
{ name: "Zara" },
function(data) {
$('#stage').html(data);
}
);
The first parameter of $.post() is the URL we wish to request ("demo_test_post.asp").
Then we pass in some data to send along with the request (name and city).
The ASP script in "demo_test_post.asp" reads the parameters, processes them, and returns a result.
The third parameter is a callback function. The first callback parameter holds the content of the page requested, and the second callback parameter holds the status of the request.
|
|    |
load() | Indlæser HTML fra remote fil og indsætter den i DOM. (f.eks. en RSS-fil). | url, data, function(response,status,xhr)
$("button").click(function(){
$("#div1")
.load("demo_test.txt", function(responseTxt, statusTxt, xhr){
if(statusTxt == "success")
alert("External content loaded successfully!");
if(statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
});
});
|
 |     |
Serialisering: <FORM..>-data |
$.param() | Etablerer en seriel tekststreng i formatet 'www-form-urlencoded' ud fra enhver array eller objekt. Kan bruges i 'URL query string' i et ajax request.
Med ajax() traditional-optionen etableres en ' traditional 'shallow' serialized representation'. | object, trad
$(this).serialize() + "&" + $.param(data)
|
|    |
serialize() | Etablerer en seriel tekststreng i formatet 'www-form-urlencoded' ud fra $_POST- og $_GET-data. | ingen
$(this).serialize() + "&" + $.param(data)
|
|    |
serializeArray() | Etablerer en seriel tekststreng og returnerer en JSON-fil ud fra $_POST- og $_GET-data. | ingen
$("button").click(function(){
var x = $("form").serializeArray();
$.each(x, function(i, field){
$("#results").append(field.name + ":" + field.value + " ");
});
});
The serializeArray() method creates an array of objects (name and value) by serializing form values.
You can select one or more form elements (like input and/or text area), or the form element itself.
|
|    |
|