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.

0 views
0 shares

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.