Когда открыто несколько браузеров, каждый ли браузер вызывает ajax? - PullRequest
0 голосов
/ 19 февраля 2020

Я запускаю электронную почту в указанное c время, используя ajax звонок. Запуск электронной почты в указанное время c работает нормально. Однако вызов ajax запускает его несколько раз в зависимости от количества браузеров, открытых с одним и тем же URL-адресом. Мне нужно только один раз вызвать ajax. Вот код:

$(document).ready(function() {
$.ajax({
    url: "<?php echo site_url('getclientlist')?>/",
    type: "GET",
    dataType: "JSON",
    success: function(data) {
        $.each(data, function(index, value) {

            var clientudo = value.Description;
            var departudo = value.Depart;
            var emailtime = value.Email_Sent;
            var hours, mins;

            function autoudoemail() {
                console.log('trigger');
                $.ajax({
                    url: "<?php echo base_url(); ?>autoudoemail",
                    type: "POST",
                    data: { Client_Name: clientudo, Depart: departudo },
                    dataType: "JSON",
                    success: function(response) {
                        console.log(response);
                    }
                });
                clearTimeout(timer);
            }
            if (emailtime) {
                var et1 = emailtime.split(':');
                hours = et1[0];
                mins = et1[1];
                //get your offset to wait value
                var timetarget = forceMidnightPageReloadGetTargetTime(hours, mins).getTime();
                var timenow = new Date().getTime();
                var offsetmilliseconds = timetarget - timenow;
                //if it isn't midnight yet, set a timeout.
                if (offsetmilliseconds >= hours++) {
                    var timer = setTimeout(function() { autoudoemail() }, offsetmilliseconds);
                }
            }
        });
    },
    error: function(jqXHR, textStatus, errorThrown) {
        swal("Oops", "We couldn't connect to the server!", "error");
    }
  });
 });

Пожалуйста, сообщите Спасибо

1 Ответ

0 голосов
/ 19 февраля 2020

Это поведение по умолчанию.

Вы можете попробовать:

  • Контролировать доступность вызова между windows одних и тех же браузеров, используя postMessage
  • Переместите проблему на стороне сервера и используйте подход блокировки или очереди для отправителя электронной почты.

С уважением,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...