Две переменные равны стоп-запросу с использованием ajax - PullRequest
0 голосов
/ 11 мая 2018

Если две переменные равны 6s ==6s, Secdata Изображения должны быть загружены, В противном случае загружается GIF, я должен показать

Я использую MongoDB. Мой массив объектов

"sec": "6s"
"Secdata" : ["1.jpg", "2.jpg"];

У меня есть четыре кнопки в элементе HTML

<a href="" data-sec="4s">4s</a>
<a href="" data-sec="6s">6s</a>
<a href="" data-sec="8s">8s</a>
<a href="" data-sec="10s">10s</a>

Когда я нажимаю кнопку 6s. Он примет значение данных 6 с и сравнит с данными сбора

     $(document).ready(function() {
         function checkAjax(id, tmax, tid, pid) {
             $.ajax({
                 url: '../tmax',
                 type: 'POST',
                 data: {
                     id: id,
                     tmax: tmax,
                     tid: tid,
                     pid: pid
                 },
                 success: function(response) {
                     $("#sliderA").hide();
                     $("#sliderB").hide();
                     $("#sliderC").hide();
                     $("#tmaxsecsdata").html(response);
                     if (second == tmax) {

                         checkAjax(id, tmax, tid, pid);

                     } else {
                         var loadinggif = "<img src='loader.gif' class='img-responsive'>";
                         $("#tmaxsecsdata").html(loadinggif);
                     }
                 },
                 error: function() {
                     console.log("Error");
                 }
             })
         }

         $(".secs li a").on("click", function(e) {
             e.preventDefault();
             var id = $(this).data("jsonid");
             var tmax = $(this).data("secs");
             var tid = $(this).data("tid");
             var pid = $(this).data("pid");

             checkAjax(id, tmax, tid, pid);
         })

     })

Переменная секунда , я получаю из бэкэнда

Моя проблема

При нажатии на мою кнопку я получаю переменную (6s => это будет что-то 4 с, 8 с, 10 с, 4 с). То же самое, я получаю другую переменную в моей коллекции. Теперь у меня есть две переменные, эти две переменные я использую для сравнения ('6s' => это будет что-нибудь 4s, 8s, 10s, 4s). Если две переменные или не равны, загрузчик покажет на моей странице. Через час в моей коллекции появится обновление, и я получу равную переменную. Теперь мне нужны шо картинки.

Спасибо

1 Ответ

0 голосов
/ 11 мая 2018

Не используйте setInterval, просто вызовите новый ajax из обратного вызова success, если массив пуст.

Таким образом, предполагая, что tmaxSec является частью response, тогда

function checkAjax(id, tmax, tid, pid){
  $.ajax({
        url:'../tmax',
        type:'POST',
        data:{id:id,tmax:tmax,tid:tid,pid,pid},
        success: function(response){
            $("#sliderA").hide();
            $("#sliderB").hide();
            $("#sliderC").hide();
            $("#tmaxsecsdata").html(response);

            if (response.tmaxSec.length === 0) {
                   checkAjax(id,tmax,tid,pid);
            }
        },
        error: function(){
            console.log("Error");
        }
    })
}

$(".secs li a").on("click",function(e){

      var id = $(this).data("jsonid");
      var tmax = $(this).data("secs");
      var tid = $(this).data("tid");
      var pid = $(this).data("pid");

      checkAjax(id,tmax,tid,pid);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...