search
HomeWeb Front-endFront-end Q&AWhat is ajax synchronous and asynchronous

ajax synchronization means that when the JavaScript code is loaded into the current ajax, all code loading in the page will stop, and the page will be in a state of suspended animation. When the ajax is executed, the page will be in the state of suspended animation. The code Continue to run; ajax asynchronous means that other codes can also run when the current ajax code is running.

What is ajax synchronous and asynchronous

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

What is ajax synchronization and asynchronous

(1) Synchronization means that when the JS code is loaded into the current AJAX, all the code in the page will stop loading, and the page will be in a state of suspended animation. When this After AJAX is executed, the page's suspended state will be released and the code will continue to run.

(2) Asynchronous means that other codes can run while the current AJAX code is running.

jquery's async:false, this attribute

The default is true: asynchronous, false: synchronous.

Examples are as follows:

$.ajax({
           url: prefix + "/exportById",
           data: {ids:ids},
           type: 'POST',
           traditional: true,
           cache:false, 
           async:false, 
           success: function (result) {
            if (result.code == web_status.SUCCESS) {
                  window.location.href = ctx + "common/download?fileName=" + result.msg + "&delete=" + true;
                } else {
                             alert("导出失败");
                    }
                }
        });

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? 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 execution methods: synchronous (async = false) and asynchronous (async = true) according to the value of async. ; In the W3C tutorial, it is recommended to use asynchronous execution;

Let’s distinguish the difference between synchronization and asynchronous execution:

Asynchronous: In asynchronous mode, when we use AJAX to send the request, There may still 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

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 What is ajax synchronous and asynchronous. 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
React: The Foundation for Modern Frontend DevelopmentReact: The Foundation for Modern Frontend DevelopmentApr 19, 2025 am 12:23 AM

React is a JavaScript library for building modern front-end applications. 1. It uses componentized and virtual DOM to optimize performance. 2. Components use JSX to define, state and attributes to manage data. 3. Hooks simplify life cycle management. 4. Use ContextAPI to manage global status. 5. Common errors require debugging status updates and life cycles. 6. Optimization techniques include Memoization, code splitting and virtual scrolling.

The Future of React: Trends and Innovations in Web DevelopmentThe Future of React: Trends and Innovations in Web DevelopmentApr 19, 2025 am 12:22 AM

React's future will focus on the ultimate in component development, performance optimization and deep integration with other technology stacks. 1) React will further simplify the creation and management of components and promote the ultimate in component development. 2) Performance optimization will become the focus, especially in large applications. 3) React will be deeply integrated with technologies such as GraphQL and TypeScript to improve the development experience.

React: A Powerful Tool for Building UI ComponentsReact: A Powerful Tool for Building UI ComponentsApr 19, 2025 am 12:22 AM

React is a JavaScript library for building user interfaces. Its core idea is to build UI through componentization. 1. Components are the basic unit of React, encapsulating UI logic and styles. 2. Virtual DOM and state management are the key to component work, and state is updated through setState. 3. The life cycle includes three stages: mount, update and uninstall. The performance can be optimized using reasonably. 4. Use useState and ContextAPI to manage state, improve component reusability and global state management. 5. Common errors include improper status updates and performance issues, which can be debugged through ReactDevTools. 6. Performance optimization suggestions include using memo, avoiding unnecessary re-rendering, and using us

Using React with HTML: Rendering Components and DataUsing React with HTML: Rendering Components and DataApr 19, 2025 am 12:19 AM

Using HTML to render components and data in React can be achieved through the following steps: Using JSX syntax: React uses JSX syntax to embed HTML structures into JavaScript code, and operates the DOM after compilation. Components are combined with HTML: React components pass data through props and dynamically generate HTML content, such as. Data flow management: React's data flow is one-way, passed from the parent component to the child component, ensuring that the data flow is controllable, such as App components passing name to Greeting. Basic usage example: Use map function to render a list, you need to add a key attribute, such as rendering a fruit list. Advanced usage example: Use the useState hook to manage state and implement dynamics

React's Purpose: Building Single-Page Applications (SPAs)React's Purpose: Building Single-Page Applications (SPAs)Apr 19, 2025 am 12:06 AM

React is the preferred tool for building single-page applications (SPAs) because it provides efficient and flexible ways to build user interfaces. 1) Component development: Split complex UI into independent and reusable parts to improve maintainability and reusability. 2) Virtual DOM: Optimize rendering performance by comparing the differences between virtual DOM and actual DOM. 3) State management: manage data flow through state and attributes to ensure data consistency and predictability.

React: The Power of a JavaScript Library for Web DevelopmentReact: The Power of a JavaScript Library for Web DevelopmentApr 18, 2025 am 12:25 AM

React is a JavaScript library developed by Meta for building user interfaces, with its core being component development and virtual DOM technology. 1. Component and state management: React manages state through components (functions or classes) and Hooks (such as useState), improving code reusability and maintenance. 2. Virtual DOM and performance optimization: Through virtual DOM, React efficiently updates the real DOM to improve performance. 3. Life cycle and Hooks: Hooks (such as useEffect) allow function components to manage life cycles and perform side-effect operations. 4. Usage example: From basic HelloWorld components to advanced global state management (useContext and

React's Ecosystem: Libraries, Tools, and Best PracticesReact's Ecosystem: Libraries, Tools, and Best PracticesApr 18, 2025 am 12:23 AM

The React ecosystem includes state management libraries (such as Redux), routing libraries (such as ReactRouter), UI component libraries (such as Material-UI), testing tools (such as Jest), and building tools (such as Webpack). These tools work together to help developers develop and maintain applications efficiently, improve code quality and development efficiency.

React and Frontend Development: A Comprehensive OverviewReact and Frontend Development: A Comprehensive OverviewApr 18, 2025 am 12:23 AM

React is a JavaScript library developed by Facebook for building user interfaces. 1. It adopts componentized and virtual DOM technology to improve the efficiency and performance of UI development. 2. The core concepts of React include componentization, state management (such as useState and useEffect) and the working principle of virtual DOM. 3. In practical applications, React supports from basic component rendering to advanced asynchronous data processing. 4. Common errors such as forgetting to add key attributes or incorrect status updates can be debugged through ReactDevTools and logs. 5. Performance optimization and best practices include using React.memo, code segmentation and keeping code readable and maintaining dependability

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)