Performing synchronous POST requests to manipulate data in a SQL database using AJAX

My goal is to send synchronous calls to a page that will handle the SQL insertion of words I am posting. However, due to the large number of chunks and the synchronous nature of SQL, I want each AJAX call to be processed one after another.

for (chunk = 1; chunk <= totalchunks; chunk++) {
    $.ajax({
    type: "POST",
    dataType: "json",
    url: "updateHandle.php", 
    data: {words:arr.slice(1000*(chunk-1),1000*chunk),push:getpush},
    success: function(){
        console.log('Items added');
    },
    error: function(){
        console.log('Errors happened');
    }
    });
}

Unfortunately, using async: false does not seem to be effective as every AJAX call goes to the error case instead of the success case. Are there any alternative solutions that I might have missed?

I considered implementing a busy-waiting while-loop with locks, but my attempts with the setTimeout() function have not yielded the desired results (likely an error on my end).

EDIT: The size of the chunks requires multiple AJAX calls, hence the need for serialization. Additionally, the number of chunks may vary between calls, so adaptability is key.

Answer №1

How about trying something along these lines:

function addWordsToDatabase(array){
    if(array.length) {
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "updateHandle.php", 
            data: {
                words: array.splice(0, 1000),
                push: getpush
            },
            success: function(){
                console.log('Added 1000 items');
                addWordsToDatabase(array);
            },
            error: function(){
                console.log('Encountered errors');
                return;
            }
        });
    } else {
        console.log("All words inserted successfully.")
    }
}

You could include a callback function as a parameter of addWordsToDatabase or utilize a promise to enhance the robustness of the function.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

I'm curious if it is possible to retrieve the dates of actions on websites using Selenium with Python

Is there a way to retrieve the date of data, like the date of comments, using HTML codes? I need assistance on how to achieve this through selenium in Python. Can Jquery be used as a solution? ...

CORS policy blocked Deepl API request

For the past few months, I successfully integrated Deepl API into our Web CRM. However, things took a turn a few days ago. I can't pinpoint exactly when, but it might have been since the start of the new year. Now, every request is being blocked by s ...

Dynamically changing the borders of WebGL canvases: a guide to adding and

Here is my code snippet for creating an HTML canvas: <canvas id="glCanvas" class="canvases" width="20" height="20></canvas> To set the color, I am using the following: gl.clearColor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.COLOR_BUFFER_BIT); I am w ...

Enhancing State in React Component through Prop Update

I am aiming to achieve the functionality of clicking a button in a child component and having that component removed. I am new to React and currently in my app.js file, I have a component with a prop like this: <IntroSteps isHidden={false} /> Inside ...

Error handling issues with multiple file uploads in Wicket: FileNotFoundException

We are encountering a unique issue in our Wicket 6+ application related to the FileUpload.writeTo(file) method. This error only occurs with specific file types (docx, xlsx, java) within one particular form. Interestingly, the identical code functions corre ...

Interactive Google Maps using Autocomplete Search Bar

How can I create a dynamic Google map based on Autocomplete Input? Here is the code that I have written: <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDeAtURNzEX26_mLTUlFXYEWW11ZdlYECM&libraries=places&language=en"></scri ...

Issue with Yup and Formik not validating checkboxes as expected

I'm struggling to figure out why the validation isn't functioning as expected: export default function Check() { const label = { inputProps: { "aria-label": "termsOfService" } }; const formSchema = yup.object().shape({ ...

Node Selenium for Importing Excel Files---I will help you

My current challenge involves using node selenium in Firefox to click a link that triggers the download of an excel file. I want the downloaded file to be saved in a specific directory, but when I click the link, a dialog box pops up giving me the option ...

What is the most efficient way to use map-reduce in TypeScript to filter a list based on the maximum value of an attribute?

Recently, I came across a list that looked something like this: let scores = [{name: "A", skills: 50, result: 80}, {name: "B", skills: 40, result: 90}, {name: "C", skills: 60, result: 60}, {name: "D", skills: 60, ...

Is there an rxjs operator that includes both on-next and on-error callbacks?

Is there a similar function to promise.then(onNextCallback,onErrorCallback) in rxjs that I can use? I've already tried alternatives like pipe(concatMap(),catchError) but they are not what I am looking for. ...

Implementing login functionality in an Angular application with the help of Kinvey.Social and utilizing the Promise API

I have been utilizing the Kinvey HTML5 library in an attempt to create a client-side application that integrates Google identities for Login. While the Oauth transaction appears to be functioning properly, I am encountering an issue with toggling the visib ...

The initial $http POST in Angular ends up hitting the error path within the .then function despite the successful execution of the

Something strange is happening to me. This peculiar behavior occurs only on the initial POST request. However, when I resubmit the form, the subsequent requests work perfectly fine. The first $http post call leads to the error function in .then, even thou ...

Numerous Express routers are available for use

Previously, my go-to method for prefixing routes in an API was using express.Router(). An example of how I would use it: var app = express(), api = express.Router(); app.use("/api", api); With this setup, I could define a route like so: api.post("/ ...

What is the best way to notify the user if the percentage entered is not a numeric value?

My role is to notify the user when the entered value exceeds the acceptable range: if (document.myForm.outputPercentage.value <= 0 || document.myForm.outputPercentage.value >= 100) { alert( "Please enter a percentage between 1 and 100 ...

Ways to simulate a variable imported in the module being tested without it being a function parameter can be achieved by using describe.each and changing the mock value for each test

I have a requirement to test a function within my TypeScript module. module-to-test.ts import { config } from './app-config'; export const isSomethingWhatINeedSelector = createSelector( firstDependencySelector, secondDependencySelector ...

Struggling to retrieve a single value from my React app using sequelize findbyPk

Greetings, I am new to this and have a question that may seem silly. Despite my efforts to resolve it on my own, I have been unsuccessful. When using Postman, the data returned to "localhost:8000/playlists/1" is correct, but when I try to access it through ...

Using AngularJS to fetch images from RSS feed description

I'm currently learning AngularJS by creating a simple RSS feed. I have successfully made a JSON request and fetched all the data including title, link, description, and images from the RSS feed I parsed. The code snippet for extracting images looks li ...

What functionality does this method perform within React.js?

While going through the process of creating login forms, I stumbled upon this interesting method: handleChange(e) { this.setState({ [e.target.name] : e.target.value }); } I am a bit confused about the setState part in this method. The array brackets ...

The appearance of responsive CSS is altered when deployed compared to when it is viewed on the

I'm a beginner in web development and facing an issue with my mobile CSS. The strange thing is that when I view it on localhost, everything looks great, but once deployed (tried both Heroku and GitHub), it appears distorted. Even when I make extreme c ...

how can a select dropdown be dynamically displayed based on the previous selection?

If the first dropdown is set to "Professor" I want to display a second dropdown, but if it is set to "Student" then I do not want to display the second dropdown. function checkPrivilege() { var privilege = document.getElementById("permisija5").value; ...