jQuery ajax - Μέθοδος ajax()

Παράδειγμα

Μεταφόρτωση ενός κειμένου μέσω AJAX:

jQuery κώδικας:

$(document).ready(function(){
  $("#b01").click(function(){
  htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
  $("#myDiv").html(htmlobj.responseText);
  });
});

Κώδικας HTML:

<div id="myDiv"><h2>Ας αλλάξει αυτό το κείμενο με AJAX</h2></div>
<button id="b01" type="button">Αλλάξτε Περιεχόμενο</button>

Προσπαθήστε να το δοκιμάσετε προσωπικά

Ορισμός και χρήση

Η μέθοδος ajax() φορτώνει απομακρυσμένα δεδομένα μέσω HTTP αιτησεων.

Αυτό είναι το κάτω επίπεδο υλοποίηση του jQuery AJAX. Εύκολη χρήση σε υψηλό επίπεδο είναι διαθέσιμη μέσω των $.get, $.post κ.λπ. Το $.ajax() επιστρέφει το αντικείμενο XMLHttpRequest που δημιουργεί.

Στην πιο απλή περίπτωση, το $.ajax() μπορεί να χρησιμοποιηθεί χωρίς κανένα παράμετρο.

Λάβετε υπόψη:Όλες οι επιλογές μπορούν να ρυθμιστούν παγκοσμίως μέσω της συνάρτησης $.ajaxSetup().

Γλώσσα

jQuery.ajax([settings]
Παράμετροι Περιγραφή
settings

Οπション. Συλλογή key-value χρησιμοποιούμενη για τη ρύθμιση των αιτησεων AJAX.

Μπορείτε να ρυθμίσετε τις προεπιλεγμένες τιμές οποιασδήποτε επιλογής με τη χρήση της συνάρτησης $.ajaxSetup().

Παράμετροι

options

Τύπος: Object

Οπション. Ρυθμίσεις αιτήσεων AJAX. Όλες οι επιλογές είναι προαιρετικές.

async

Τύπος: Λογικό

Προεπιλεγμένη τιμή: true. Στα προεπιλεγμένα ρυθμίσεις, όλες οι αιτήσεις είναι ασυνάλληλες. Αν χρειάζεστε να στείλετε συγχρονική αίτηση, ρυθμίστε αυτή την επιλογή σε false.

Λάβετε υπόψη ότι οι συγχρονικές αιτήσεις θα κλείσουν το πρόγραμμα περιήγησης, και οι άλλες δραστηριότητες του χρήστη πρέπει να περιμένουν την ολοκλήρωση της αίτησης.

beforeSend(XHR)

Τύπος: Λειτουργία

Πριν από την αποστολή της αίτησης μπορείτε να τροποποιήσετε τη συνάρτηση του αντικειμένου XMLHttpRequest, όπως να προσθέσετε προσαρμοσμένα HTTP headers.

Το αντικείμενο XMLHttpRequest είναι ο μοναδικός παράμετρος.

Αυτό είναι ένα Ajax συμβάν. Αν επιστρέψετε false μπορείτε να ακυρώσετε αυτή την αίτηση ajax.

cache

Τύπος: Λογικό

Προεπιλεγμένη τιμή: true, όταν το dataType είναι script και jsonp η προεπιλεγμένη τιμή είναι false. Η ρύθμιση σε false δεν θα αποθηκεύσει αυτή τη σελίδα.

jQuery 1.2 νέες λειτουργίες.

complete(XHR, TS)

Τύπος: Λειτουργία

Κάλπικη συνάρτηση που καλείται μετά την ολοκλήρωση της αίτησης (κατά την επιτυχία ή την αποτυχία του αιτήματος).

Παράμετροι: Το αντικείμενο XMLHttpRequest και μια αλφαριθμητική απεικόνιση του τύπου αίτησης.

Αυτό είναι ένα γεγονός Ajax.

contentType

Τύπος: Λατινικό Σύστημα γραφής

Προεπιλεγμένη τιμή: "application/x-www-form-urlencoded". Ο τύπος κωδικοποίησης περιεχομένου κατά την αποστολή δεδομένων στον διακομιστή.

Η προεπιλεγμένη τιμή είναι κατάλληλη για τις περισσότερες περιπτώσεις. Αν καθορίσετε σαφώς έναν content-type στον $.ajax(), θα αποσταλεί στον διακομιστή (ακόμα και αν δεν υπάρχουν δεδομένα να αποσταλούν).

context

Τύπος: Object

Αυτός ο αντικείμενος χρησιμοποιείται για να ρυθμίσει το πλαίσιο των κάλπικων συνάρτητων του Ajax. Δηλαδή, να κάνει το this εντός της κάλπικης συνάρτησης να σημαίνει αυτό το αντικείμενο (αν δεν καθοριστεί αυτός ο παράμετρος, το this θα σημαίνει τους παραμέτρους options που παρέχονται κατά την κλήση του AJAX). Π.χ., αν καθοριστεί ένα στοιχείο DOM ως παράμετρος context, θα ρυθμίσει το πλαίσιο της κάλπικης συνάρτησης success σε αυτό το στοιχείο DOM.

όπως αυτό:

$.ajax({ url: "test.html", context: document.body, success: function(){
        $(this).addClass("done");
      }});
data

Τύπος: Λατινικό Σύστημα γραφής

Δεδομένα που αποστέλλονται στον διακομιστή. Θα μετατραπούν αυτόματα σε μορφή αίτησης κειμένου. Σε αιτήσεις GET θα προστεθούν στο URL. Εξετάστε τις οδηγίες για το παράμετρο processData για να απενεργοποιήσετε αυτό το αυτόματο μετασχηματισμό. Θα πρέπει να είναι σε μορφή Key/Value. Αν είναι μια λίστα, το jQuery θα μετατρέψει αυτόματα διαφορετικές τιμές σε ίδιο όνομα. Π.χ. {foo:["bar1", "bar2"]} θα μετατραπεί σε '&foo=bar1&foo=bar2'.

dataFilter

Τύπος: Λειτουργία

Συνάρτηση προεπεξεργασίας των πρωτογενών δεδομένων που επιστρέφουν το Ajax. Παρέχει τους παραμέτρους data και type: τα data είναι τα πρωτογενή δεδομένα που επιστρέφουν το Ajax, ενώ το type είναι ο παράμετρος dataType που παρέχεται κατά την κλήση του jQuery.ajax. Η τιμή που επιστρέφει η συνάρτηση θα επεξεργαστείται περαιτέρω από το jQuery.

dataType

Τύπος: Λατινικό Σύστημα γραφής

Εκπέμπει ο τύπος δεδομένων που αναμένεται να επιστρέψει ο διακομιστής. Αν δεν καθοριστεί, το jQuery θα αποφασίσει αυτόματα, βασισμένος στις πληροφορίες MIME HTTP πακέτου, π.χ. ο τύπος MIME XML θα αναγνωρίζεται ως XML. Στο 1.4, το JSON θα δημιουργήσει έναν αντικείμενο JavaScript, ενώ το script θα εκτελέσει αυτό το σενάριο. Μετά την επιστροφή των δεδομένων από τον διακομιστή, θα αναλύονται αυτές οι τιμές και θα μεταφέρονται στον κάλπικο ορισμό. Οι διαθέσιμοι τύποι:

  • "xml": επιστρέφει έγγραφο XML, που μπορεί να χειριστεί το jQuery.
  • "html": επιστρέφει καθαρή HTML πληροφορία; οι ετικέτες script θα εκτελεστούν κατά την εισαγωγή στο dom.
  • "script": επιστρέφει καθαρό κώδικα JavaScript. Δεν αποθηκεύεται αυτόματα το αποτέλεσμα. Εκτός αν έχει ρυθμιστεί ο παράγοντας "cache". Σημείωση: σε απομακρυσμένα αιτήματα (πέρα από την ίδια τοποθεσία), όλα τα αιτήματα POST θα μετατραπούν σε αιτήματα GET (γιατί θα χρησιμοποιηθεί το script ετικέτα του DOM για την φόρτωση).
  • "json": επιστρέφει δεδομένα JSON.
  • "jsonp": μορφή JSONP. Όταν καλείται η συνάρτηση με μορφή JSONP, όπως "myurl?callback=?", το jQuery θα αντικαταστήσει το ? με το σωστό όνομα της συνάρτησης για την εκτέλεση της συνάρτησης κλήσης.
  • "text": επιστρέφει μια καθαρή αλφαριθμητική αλυσίδα.
error

Τύπος: Λειτουργία

Προεπιλεγμένη τιμή: αυτόματη κρίση (xml ή html). Καλείται αυτή η συνάρτηση όταν το αίτημα αποτύχει.

Έχουν τα εξής τρία παραμέτρους: το αντικείμενο XMLHttpRequest, η πληροφορία σφάλματος, (προαιρετικά) το αντικείμενο εξαίρεσης που έχει συλληφθεί.

Αν συμβεί σφάλμα, η πληροφορία σφάλματος (δεύτερος παράγοντας) εκτός από το null, μπορεί να είναι "timeout", "error", "notmodified" και "parsererror".

Αυτό είναι ένα γεγονός Ajax.

global

Τύπος: Λογικό

Αν θα προκαλεστούν τα κεντρικά γεγονότα AJAX. Προεπιλεγμένη τιμή: true. Η ρύθμιση σε false δεν θα προκαλέσει τα κεντρικά γεγονότα AJAX, όπως το ajaxStart ή το ajaxStop μπορεί να χρησιμοποιηθεί για τον έλεγχο διαφορετικών γεγονότων AJAX.

ifModified

Τύπος: Λογικό

Αποκτά νέα δεδομένα μόνο όταν αλλάζουν τα δεδομένα στο διακομιστή. Προεπιλεγμένη τιμή: false. Χρησιμοποιείται η κεφαλίδα Last-Modified του HTTP πακέτου για την κρίση. Στο jQuery 1.4, ελέγχει επίσης τον 'etag' που καθορίζεται από τον διακομιστή για να διασφαλιστεί ότι τα δεδομένα δεν έχουν αλλάξει.

jsonp

Τύπος: Λατινικό Σύστημα γραφής

Σε μια αίτημα jsonp, ανατρέπεται το όνομα της συνάρτησης κλήσης. Αυτό το όνομα χρησιμοποιείται για να αντικαταστήσει την παραμέτρο "callback" στην URL των αιτημάτων GET ή POST όπως στο "callback=?", π.χ. {jsonp:'onJsonPLoad'} θα προκαλέσει την αποστολή του "onJsonPLoad=?" στο διακομιστή.

jsonpCallback

Τύπος: Λατινικό Σύστημα γραφής

Ορίστε έναν όνομα συνάρτησης ανατροφοδότησης για αίτημα jsonp. Αυτό το όνομα θα χρησιμοποιηθεί για να αντικαταστήσει το τυχαίο όνομα συνάρτησης που δημιουργεί το jQuery. Αυτό χρησιμοποιείται κυρίως για να επιτύχει μοναδικά ονόματα συναρτήσεων, καθιστώντας την διαχείριση αιτημάτων πιο εύκολη και διευκολύνοντας την παροχή συνάρτησης ανατροφοδότησης και διαχείρισης σφαλμάτων. Μπορείτε επίσης να ορίσετε αυτό το όνομα συνάρτησης ανατροφοδότησης όταν θέλετε να κάνετε το GET αίτημα να αποθηκεύεται από τον περιηγητή.

password

Τύπος: Λατινικό Σύστημα γραφής

Χρησιμοποιείται για να απαντήσει στο κωδικό πρόσβασης που ζητά η ανάγνωση HTTP πιστοποίησης.

processData

Τύπος: Λογικό

Προεπιλεγμένη τιμή: true. Προεπιλεγμένα, τα δεδομένα που περνιούνται μέσω της επιλογής data, αν είναι αντικείμενο (τεχνικά, μόνο αν δεν είναι αλφαριθμητικό), θα επεξεργαστούν και θα μετατραπούν σε μια αλφαριθμητική ακολουθία, για να ταιριάζουν με την προεπιλεγμένη τύπο περιεχομένου "application/x-www-form-urlencoded". Αν θέλετε να στείλετε πληροφορίες DOM ή άλλες πληροφορίες που δεν θέλετε να μετατραπούν, ρυθμίστε το σε false.

scriptCharset

Τύπος: Λατινικό Σύστημα γραφής

Χρησιμοποιείται μόνο όταν ο dataType της αίτησης είναι "jsonp" ή "script", και ο τύπος είναι "GET", για να επιβάλει την αναγκαστική αλλαγή charset. Χρησιμοποιείται συνήθως όταν η κωδικοποίηση του περιεχομένου είναι διαφορετική στο τοπικό και το απομακρυσμένο περιβάλλον.

success

Τύπος: Λειτουργία

Η συνάρτηση ανατροφοδότησης μετά την επιτυχία της αίτησης.

Παράμετροι: Τα δεδομένα που επιστρέφονται από τον εξυπηρετητή και επεξεργάζονται με βάση τον παράμετρο dataType; Η αλληλογραφία περιγράφει την κατάσταση.

Αυτό είναι ένα γεγονός Ajax.

traditional

Τύπος: Λογικό

Αν θέλετε να χρησιμοποιήσετε τον παραδοσιακό τρόπο σειράτησης δεδομένων, ρυθμίστε το σε true. Εξετάστε το μέθοδο jQuery.param στην κατηγορία εργαλείων.

timeout

Τύπος: Αριθμός

Ρυθμίστε τον χρόνο αναμονής της αίτησης (σε χιλιάδες δευτερόλεπτα). Αυτή η ρύθμιση θα καλύψει την καθολική ρύθμιση.

Τύπος: Λατινικό Σύστημα γραφής

Προεπιλεγμένη τιμή: "GET" (

url

Τύπος: Λατινικό Σύστημα γραφής

Προεπιλεγμένη τιμή: Η διεύθυνση της τρέχουσας σελίδας. Η διεύθυνση στην οποία αποστέλλεται η αίτηση.

username

Τύπος: Λατινικό Σύστημα γραφής

Χρησιμοποιείται για να απαντήσει στο όνομα χρήστη που ζητά η ανάγνωση HTTP πιστοποίησης.

xhr

Τύπος: Λειτουργία

Χρειάζεται να επιστρέψετε έναν αντικείμενο XMLHttpRequest. Είναι ActiveXObject στο IE και XMLHttpRequest σε άλλες περιπτώσεις. Χρησιμοποιείται για να επαναγράψετε ή να παρέχετε έναν βελτιωμένο αντικείμενο XMLHttpRequest.

Callback functions

Για να επεξεργαστούν τα δεδομένα που αποκτήθηκαν από το $.ajax(), πρέπει να χρησιμοποιηθούν οι callback functions: beforeSend, error, dataFilter, success, complete.

beforeSend

Καλείται πριν την αποστολή της αίτησης και εισάγεται ένας XMLHttpRequest ως παράμετρος.

error

Καλείται όταν η αίτηση αποτύχει. Παρουσιάζεται το αντικείμενο XMLHttpRequest, μια αλφαριθμητική ακολουθία που περιγράφει τον τύπο του σφάλματος και ένα αντικείμενο εξαίρεσης (αν υπάρχει).

dataFilter

Καλείται μετά την επιτυχία της αίτησης. Παρουσιάζονται τα δεδομένα που επιστράφηκαν και η τιμή του παραμέτρου dataType. Και πρέπει να επιστραφούν νέα δεδομένα (πιθανώς επεξεργασμένα) που θα μεταβιβαστούν στο callback success.

success

Καλείται μετά την ολοκλήρωση της αίτησης. Παρουσιάζεται τα δεδομένα που επιστράφηκαν και μια αλφαριθμητική ακολουθία που περιέχει τον κώδικα επιτυχίας.

complete

Ανάλογα με την ολοκλήρωση της αίτησης, καλείται αυτή η συνάρτηση, ανεξάρτητα από το αν ήταν επιτυχής ή αποτυχία. Παρουσιάζεται το αντικείμενο XMLHttpRequest και μια αλφαριθμητική ακολουθία που περιέχει τον κώδικα επιτυχίας ή αποτυχίας.

Τύπος δεδομένων

Η συνάρτηση $.ajax() εξαρτάται από τις πληροφορίες που παρέχει ο διακομιστής για την επεξεργασία των δεδομένων που επιστρέφονται. Αν ο διακομιστής αναφέρει ότι τα δεδομένα είναι XML, τα αποτελέσματα μπορούν να εξεταστούν με κανονικούς τρόπους XML ή με τους επιλογείς του jQuery. Αν βλέπουμε άλλους τύπους, όπως HTML, τα δεδομένα θα αντιμετωπιστούν ως κείμενο.

Με την επιλογή dataType μπορεί να καθοριστεί και άλλες διαφορετικές μεθόδους επεξεργασίας δεδομένων. Εκτός από το απλό XML, μπορεί να καθοριστεί html, json, jsonp, script ή text.

Σε αυτή την περίπτωση, τα δεδομένα τύπων text και xml δεν θα επεξεργαστούν. Τα δεδομένα θα μεταβιβαστούν απλά στο responseText ή responseHTML του XMLHttpRequest στο success callback.

Λάβετε υπόψη:Πρέπει να βεβαιωθούμε ότι ο τύπος MIME που αναφέρει ο διακομιστής της ιστοσελίδας μας ταιριάζει με τον τύπο dataType που έχουμε επιλέξει. Για παράδειγμα, αν είναι XML, ο διακομιστής πρέπει να αναφέρει text/xml ή application/xml για να λάβουμε ταυτόσημα αποτελέσματα.

Αν οριστεί ως τύπος html, οποιοδήποτε ενσωματωμένο JavaScript θα εκτελεστεί πριν ο HTML επιστραφεί ως αλφαριθμητική ακολουθία. Παρόμοια, αν οριστεί τύπος script, θα εκτελεστεί πρώτα το JavaScript που δημιουργείται από τον διακομιστή, πριν το σενάριο επιστραφεί ως δεδομένα κειμένου.

Αν καθοριστεί ο τύπος json, τα δεδομένα που λαμβάνονται θα αναλυθούν ως αντικείμενο JavaScript και θα επιστραφούν ως αποτέλεσμα. Για να επιτευχθεί αυτό, προσπαθεί πρώτα να χρησιμοποιήσει το JSON.parse(). Αν ο περιηγητής δεν υποστηρίζει, χρησιμοποιείται μια συνάρτηση για να κατασκευάσει.

Τα δεδομένα JSON είναι μια δομημένη μορφή δεδομένων που μπορεί να αναγνωριστεί με ευκολία από το JavaScript. Αν τα δεδομένα του αρχείου βρίσκονται σε απομακρυσμένο διακομιστή (διαφορετικό όνομα τομέα, δηλαδή διαδρομή διαφόρων τομέων), θα πρέπει να χρησιμοποιηθεί ο τύπος jsonp. Χρησιμοποιώντας αυτόν τον τύπο, θα δημιουργηθεί ένας παράμετρος αίτησης callback=? που θα προστεθεί στο URL της αίτησης. Ο διακομιστής πρέπει να προσθέσει το όνομα της συνάρτησης κλήσης πριν από τα δεδομένα JSON για να ολοκληρώσει μια έγκυρη αίτηση JSONP. Αν θέλετε να καθορίσετε το όνομα του παραμέτρου της συνάρτησης κλήσης για να αντικαταστήσει το προεπιλεγμένο callback, μπορείτε να ρυθμίσετε την επιλογή jsonp του $.ajax().

Λάβετε υπόψη:Το JSONP είναι μια επέκταση του μορφώματος JSON. Απαιτεί κάτι από το κώδικα του διακομιστή για να αναγνωρίσει και να επεξεργαστεί τα παραμέτρους της αίτησης.

Αν καθοριστεί ο τύπος script ή jsonp, τότε όταν λαμβάνονται δεδομένα από τον διακομιστή, χρησιμοποιείται ο τύπος <script> αντί του αντικειμένου XMLHttpRequest. Σε αυτή την περίπτωση, το $.ajax() δεν επιστρέφει ένα αντικείμενο XMLHttpRequest και δεν παραδίδει λειτουργίες επεξεργασίας συμβάντων, όπως το beforeSend.

Αποστολή δεδομένων στο διακομιστή

By default, Ajax αιτήματα χρησιμοποιούν το μέθοδο GET. Αν θέλετε να χρησιμοποιήσετε το μέθοδο POST, μπορείτε να ρυθμίσετε την τιμή του παραμέτρου 'type'. Αυτή η επιλογή επηρεάζει επίσης τον τρόπο που τα δεδομένα του 'data' επιλέγονται για αποστολή στο διακομιστή.

Η επιλογή 'data' μπορεί να περιέχει μια αίτηση字符串, όπως key1=value1&key2=value2, ή μια αντιστοιχία, όπως {key1: 'value1', key2: 'value2'}. Αν χρησιμοποιηθεί η δεύτερη μορφή, τα δεδομένα θα μετατραπούν σε αίτηση字符串 από τον αποστολέα. Αυτός ο διαδικασία μπορεί να αποφευχθεί με τη ρύθμιση της επιλογής 'processData' σε false. Αν θέλουμε να στείλουμε ένα XML αντικείμενο στο διακομιστή, αυτή η επεξεργασία μπορεί να μην είναι κατάλληλη. Και σε αυτή την περίπτωση, πρέπει επίσης να αλλάξουμε την τιμή της επιλογής 'contentType', χρησιμοποιώντας άλλο κατάλληλο MIME τύπο για να αντικαταστήσει τον προεπιλεγμένο application/x-www-form-urlencoded.

Προηγμένες επιλογές

Η παράμετρος global χρησιμοποιείται για να αποτρέψει την καταγραφή των αναγνωριστικών συνδέσμων των callback συναρτήσεων, όπως .ajaxSend, ή ajaxError, και άλλες μεθόδους. Είναι πολύ χρήσιμη σε περιπτώσεις όπου τα αιτήματα είναι πολύ συχνά και σύντομα, μπορείτε να απενεργοποιήσετε αυτήν την επιλογή στο ajaxSend.

Αν ο διακομιστής χρειάζεται HTTP πιστοποίηση, μπορείτε να χρησιμοποιήσετε το όνομα χρήστη και τον κωδικό πρόσβασης μέσω των επιλογών username και password.

Τα αιτήματα Ajax είναι περιορισμένα στο χρόνο, οπότε η κατανόηση και η επεξεργασία των σφαλμάτων μπορεί να βελτιώσει την εμπειρία χρήστη. Ο παράμετρος timeout διατηρεί συνήθως την προεπιλεγμένη τιμή, ή μπορεί να ρυθμιστεί globalmente μέσω του jQuery.ajaxSetup, και σπάνια επαναπροσδιορίζεται για συγκεκριμένα αιτήματα.

Προεπιλεγμένα, τα αιτήματα θα αποσταλούν, αλλά ο περιηγητής μπορεί να χρησιμοποιήσει δεδομένα από το cache του. Για να απαγορευτεί η χρήση δεδομένων από το cache, μπορείτε να ρυθμίσετε την παράμετρο cache σε false. Αν θέλετε να αναφέρει σφάλμα αν τα δεδομένα δεν έχουν αλλάξει από την τελευταία αίτηση, μπορείτε να ρυθμίσετε την παράμετρο ifModified σε true.

Η παράμετρος scriptCharset επιτρέπει τη ρύθμιση μιας συγκεκριμένης χαρακτήρας σε αιτήματα του <script> ετικέτας, για χρήση σε script ή jsonp δεδομένα. Είναι πολύ χρήσιμο όταν η χαρακτήρας του script και της σελίδας είναι διαφορετική.

Η πρώτη κεφαλή του Ajax είναι η αρχή της λέξης asynchronous, που σημαίνει ότι όλες οι ενέργειες είναι παράλληλες και δεν υπάρχει σειρά ολοκλήρωσης. Ο παράμετρος async του $.ajax() είναι πάντα ρυθμισμένος σε true, που σημαίνει ότι μετά την έναρξη του αιτήματος, άλλο κώδικας μπορεί να εκτελείται. Δεν συνιστάται να ρυθμίζετε αυτή την επιλογή σε false, καθώς αυτό σημαίνει ότι όλα τα αιτήματα δεν είναι πλέον ασύγχρονα, κάτι που μπορεί να οδηγήσει σε συμφόρηση του προγράμματος περιήγησης.

$.ajax επιστρέφει το XMLHttpRequest αντικείμενο που δημιουργεί. Εκ γενετής, το jQuery χειρίζεται και δημιουργεί αυτό το αντικείμενο, αλλά ο χρήστης μπορεί να μεταφέρει ένα από του δικού του δημιουργημένο xhr αντικείμενο μέσω των επιλογών xhr. Το αντικείμενο που επιστρέφεται συνήθως απορρίπτεται, αλλά παρέχει μια υποκείμενη διεπαφή για την παρακολούθηση και τον έλεγχο των αιτημάτων. Για παράδειγμα, η κλήση του .abort() στο αντικείμενο μπορεί να παγώσει το αίτημα πριν ολοκληρωθεί.