Home  >  Article  >  Web Front-end  >  Is ajax asynchronous request by default?

Is ajax asynchronous request by default?

WBOY
WBOYOriginal
2022-07-01 16:59:493353browse

ajax defaults to an asynchronous request; in ajax, you can determine whether it is an asynchronous request based on the different async values. If the value of async is false, it means that the ajax request is synchronous. If the value of async is true, it means Ajax requests are asynchronous, and by default the value of async is "true", so ajax requests are asynchronous by default.

Is ajax asynchronous request by default?

The operating environment of this article: windows10 system, javascript1.8.5&&html5 version, Dell G3 computer.

Is ajax asynchronous by default?

ajax is submitted asynchronously by default;

AJAX is divided into synchronous "false" and asynchronous according to the different async values. "true", while the async value is true by default (asynchronous submission). The advantage of this is that it can improve the user experience through partial refresh, while also saving resources and reducing the pressure on the database.

ajax is an asynchronous request by default, that is, async:true, you can make it synchronous by setting the parameter asycn:false

$.ajax({
                                        url: 'www.test.com/test/test',
                                        type: 'POST',
                                        data: {name:"test"}
                                        async: false,
                                        error: function() {
                                            console.log('error');
                                        },
                                        success: function(resp) {
                                            console.log('success');
                                        }
                                    });

Note: If you have this kind of operation. I wrote a flag = false before calling ajax; but operations such as setting flag = true in the success callback of ajax cannot get the desired result in the asynchronous state of ajax.

Because ajax is asynchronous by default, it is possible to execute the callback flag = true operation after you complete the subsequent operations! !

Extended knowledge:

How does AJAX implement synchronous requests?

Ajax requests are divided into synchronous requests and asynchronous requests, but the default ones are asynchronous requests. So, when we want to use ajax to request synchronously, how should we implement this synchronous request? Woolen cloth? The following article will introduce to you the implementation of ajax synchronization request. Friends in need can refer to it. I hope it will be helpful to you.

First of all, we should know that synchronization is a single thread, and the code is executed in order. When the js code is loaded into the current synchronous ajax request, all other codes on the page stop loading, and the page is in a state of suspended animation. , until the request is completed, other requests will be executed.

Secondly, we should know that ajax is divided into two request methods: synchronous and asynchronous according to the value of async. When the value of async is true, it is the asynchronous request method. On the contrary, when the value of async is false, it is the asynchronous request method. Synchronous request method, so to implement ajax synchronous request, you only need to set the value of async to false.

$.ajax(
 
      type:“POST”/“GET”
 
      url:"",
 
      data:{},
 
      dataType:"json",
 
      async:false,  //同步
 
     success:function(response){
 
           }     
 
   );

What is the difference between Ajax synchronous and asynchronous requests and what are the usage scenarios?

Understanding 1:

AJAX is divided into two types according to the value of async: synchronous (async = false) and asynchronous (async = true) Asynchronous execution is recommended in the W3C tutorial;

Let’s differentiate between synchronization and asynchronous execution:

Asynchronous: In asynchronous mode, when we use AJAX to send After the request, there may be code that needs to be executed. At this time, the server may not have responded to our request due to various reasons, but because we use asynchronous execution, the remaining code in all functions containing AJAX request code will continue to execute. If we hand over the request result to another JS function for processing, then it will be like two threads executing at the same time.

Synchronization: In synchronous mode, after we use AJAX to send the request, there is still code that needs to be executed. We also hand over the server response to another JS function for processing, but the code execution at this time Yes: When the server does not respond or the JS function that processes the response result has not processed the return, the remaining code of the function containing the request code cannot be executed. Just like a single thread, it enters the blocking state after the request is sent, and the remaining code will not continue to execute until it touches the blocking state.

How to choose synchronous or asynchronous mode? To answer this question, we can answer it through the following possible questions:

After sending the AJAX request, we still need to continue to process the server's response result. If we use the asynchronous request mode and do not The processing of the results is handled by another JS function. At this time, this situation may occur: the response to the asynchronous request has not yet arrived, and the function has finished executing the return statement, which will cause the return result to be an empty string.

Understanding 2:

Synchronous: Send a request, wait for the return, and then send the next request

Asynchronous: Send a request, do not wait Return, you can send the next request at any time

Synchronization can avoid deadlocks and dirty data reading. It is generally used when sharing a certain resource. If everyone has modification permissions and modifies a file at the same time, It is possible for one person to read content that another person has deleted, an error will occur, and the synchronization will be modified in order.

Asynchronous can improve efficiency. Nowadays, CPUs are dual-core or quad-core. If you process asynchronously, you can do multiple tasks at the same time. Of course, you must ensure that it can be processed concurrently.

The biggest difference between synchronous and asynchronous is. One needs to wait, the other does not.

Sending text messages, for example, is an asynchronous example. The initiator does not care about the receiver's status. There is no need to wait for the return information from the receiver, and the next transmission can be carried out.

Telephone is an example of synchronization. The initiator needs to wait for the receiver, and the communication does not start until the call is connected. Need to wait for the return information from the receiver

And the synchronization issues we often discuss mostly occur in data sharing issues in multi-threaded environments. That is, when multiple threads need to access the same resource, they need to be in a certain order to ensure that the resource can only be accessed by one thread at a specific moment. If asynchronous is used, the running results of the program will be unpredictable. Therefore, in this case, the data must be synchronized, that is, only one process can access the resource, and other threads must wait.

The mechanisms to achieve synchronization mainly include critical sections, mutexes, semaphores and events

Critical sections: access public resources or A piece of code that is fast and suitable for controlling data access. Only one thread is allowed to access shared resources at any time. If multiple threads try to access public resources, after one thread enters, other threads trying to access public resources will be suspended and wait until they enter the critical section. After the thread leaves and the critical section is released, other threads can preempt it.

Mutex: adopts mutually exclusive object mechanism. Only threads that own mutually exclusive objects have permission to access public resources. Because there is only one mutually exclusive object, it is guaranteed that public resources will not be accessed by multiple threads at the same time. Mutex can not only realize the safe sharing of public resources of the same application, but also realize the safe sharing of public resources of different applications. Mutex is more complicated than critical section. Because the use of mutual exclusion can not only achieve safe sharing of resources among different threads of the same application, but also achieve safe sharing of resources between threads of different applications.

Semaphore: It allows multiple threads to access the same resource at the same time, but it needs to limit the maximum number of threads that can access this resource at the same time. The way the semaphore object synchronizes threads is different from the previous methods. The signal allows multiple threads to use shared resources at the same time, which is the same as the PV operation in the operating system. It indicates the maximum number of threads that can access shared resources simultaneously. It allows multiple threads to access the same resource at the same time, but needs to limit the maximum number of threads that can access this resource at the same time.

Events: Keep thread synchronization through notification operations, and also facilitate the priority comparison of multiple threads.

[Related tutorial recommendations: AJAX video tutorial]

The above is the detailed content of Is ajax asynchronous request by default?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn