Хотя (сделать jQuery) с помощью setTimeout или setInterval - PullRequest
1 голос
/ 08 декабря 2010

Я хочу выполнять JQuery POST каждые 5 секунд с разными значениями POST от RS.Следующий код работает, но функция ждет 5 секунд и отправляет все данные в POST одновременно, вместо того, чтобы отправлять один POST, ждать 5 секунд, отправлять следующий POST, ждать 5 секунд и т. Д. Я боролся с этим длянеделя.Я пробовал setinterval, а также массив, но ничего.Любая помощь будет высоко оценена.

  <% while ((Repeat1__numRows-- != 0) && (!varmin.EOF)) { %>
    <script type="text/javascript">
        $(document).ready(function() {
                var phoneval = "<%=(varmin.Fields.Item("phone").Value)%>" 
                var smsval = "<%=checkinactive.Fields.Item("audio").Value%>"
                setTimeout(function(){
                $.post("Trigger.aspx", { phone: phoneval,
                sms: smsval }, function(data) {
                    $("#status p").html(data);
                });
                },5000);
                return false;
        });
    </script>
    <% Repeat1__index++; varmin.MoveNext(); } %>

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Что-то в этом духе должно работать, но я все еще сомневаюсь в этом сценарии.

<script type="text/javascript">
    jQuery(function ($) {
        var values = <%=
            /** 
             * Produce JSON formatted array on the server, like:
             * [{ phone : 123456, sms : 7891011 }, { phone : ... }, ...]
             **/
         %>;

         var i = 0;
         var interval = setInterval(function () {
            if (!values[i]) {
                window.clearInterval(interval);
                return false;
            }

            $.post("Trigger.aspx", values[i++], function (data) {
                $("#status p").html(data);
            });
         }, 5000);
    });
</script>
0 голосов
/ 10 декабря 2010

Я добавил массив JSON и работал!

<%
var tempOutput = "";

while ((Repeat1__numRows-- != 0) && (!varmin.EOF)) 
{
    var phoneVal = varmin.Fields.Item("phone").Value;
    var smsVal = checkinactive.Fields.Item("audio").Value;

    tempOutput += "{\"phone\":\"" + phoneVal + "\", \"sms\":\"" + smsVal + "\"},";

    Repeat1__index++;
    varmin.MoveNext();
}

%>

<script type="text/javascript"> 
    jQuery(function ($) { 
        var values = output;
        .....
...