50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

ذخیره مقدار فعلی و مقایسه با مقدار جدید یک متغیر در جاوا اسکریپت

سلام وقت همگی بخیر ، از طریق یک api که اطلاعات رو در قالب json بهم میده اومدم قیمت یک ارز رو دریافت کردم و بوسیله جاوااسکریپت توی یک صفحه نمایش دادم. و البته اینها رو توی تابعی گذاشتم که بصورت ajax هر x ثانیه اطلاعات رو بروز میکنه.نیاز به کدی دارم که مقدار فعلی قیمت رو بگیره، مقدار بعدی قیمت که دریافت شد این 2 تا رو مقایسه کنه و اگه قیمت جدید از قبلی بیشتر بود مثلا بکگراند سبز بشه یا یه آلرتی چیزی بده. و اگه از قبلی کمتر بود بکگراند قرمز بشه.


   var auto_refresh = setInterval(
      function ()
      {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    var myObj = JSON.parse(this.responseText);
    document.getElementById("bids1").innerHTML = myObj.BTCIRT['bids']['0']['0'];
  }
};
xmlhttp.open("GET", "https://api.nobitex.ir/v2/orderbook/all", true);
xmlhttp.send();         
     
      }, 1000);
پرسیده شده در 1400/10/15 توسط

1 پاسخ

1

سلام به شما دوست عزیز.

برای این کار نتیجه قبلی رو توی یه متغیر ذخیره کنید.

هر بار که دیتای جدید رو گرفتید با مقادیر قبلی مقایسه کنید و اگر تغییری در آن ایجاد شده بود آلرت مورد نظر رو فعال کنید.

مقدار جدید رو در همان متغیر ذخیره کنید برای بار های بعدی

 var savedObject = {};

        var auto_refresh = setInterval(

            function () {

                var xmlhttp = new XMLHttpRequest();

                xmlhttp.onreadystatechange = function () {

                    if (this.readyState == 4 && this.status == 200) {

                        var myObj = JSON.parse(this.responseText);

                        document.getElementById("bids1").innerHTML = myObj.BTCIRT['bids']['0']['0'];

                        if (myObj['bids'] != savedObject['bids']) {

                            alert('bids chaned');

                        }

                    }

                };

                xmlhttp.open("GET", "https://api.nobitex.ir/v2/orderbook/all", true);

                xmlhttp.send();

            }, 1000);
پاسخ در 1400/10/15 توسط

پاسخ شما