JS: How to prevent race condition?

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

My task is to improve the performance on an existing WordPress site therefore I installed cache and a race condition started happening.

This is the site. The full code is here, it doesn't fit in the editor, on line 474 there's this function

function loaded() {
    var e = $("#content-wrap").attr("data-classes");
    if ($("body").attr("class", e), $("#news-slider").length) {
        var t = $("#news-slider").attr("data-timer");
        $("#news-slider").slick({
            dots: !1,
            autoplay: !0,
            speed: 800,
            autoplaySpeed: t,
            fade: !0,
            cssEase: "linear",
            prevArrow: "",
            nextArrow: ""
        })
    }

...

this line

$("#news-slider").slick({

gives slick not defined, sometimes, again it's a race condition. Sometimes an error in another function below it, the problem starts from loaded() function and below. Now I stopped caching the file and the homepage, where the file is loaded, the problem persists.

If I use $(window).load(function() either on the entire file or just this function, the homepage would be messed up, no errors would be visible in console though.

If I use $(document).ready(function() either on the entire file or just this function, the slider on mobile would be messed up, no errors would be visible in console though.

If I set a timer to delay the execution of the script, it wouldn't solve anything.

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.