Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

JavaScript

Войти
Регистрация
Восстановить пароль
 
Rva4
1 / 1 / 1
Регистрация: 26.01.2016
Сообщений: 215
#1

Асинхронный скрипт - JavaScript

21.10.2016, 15:12. Просмотров 173. Ответов 9
Метки нет (Все метки)

Помогите, на сайте есть скрипт, обновляющий баланс пользователя
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function funcBefore(){
        var a = 1;
}
 
function funcSuccess (data) {
    //alert(data);
    var Dok = document.getElementById('user_balance'), 
    result=data;
    Dok.innerHTML = " "+result+"p";
    
    var user_balance = $('#user_balance').text();
    user_balance = user_balance.length;
    if(user_balance>3){
    user_balance = (user_balance * 2) + 3;
    document.getElementById('user_balance').style.width = user_balance+'%'; //с 52 до 100
}
 
     }
 
     function check(){
 $(document).ready(function(){ 
        $.ajax({ 
            url: "phps/main_balance_check.php",   
            type: "POST",      
            dataType: "html",  
            beforeSend: funcBefore,   
            success: funcSuccess
        });
 });
     };
     
 
setInterval(check, 7000);
Как можно выполнить его асинхронно, чтобы все остальные скрипты не зависели от него? Нужно ли при этом так же асинхронно выполнять аякс запрос?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2016, 15:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Асинхронный скрипт (JavaScript):

Покажите асинхронный запрос ajax - JavaScript
хотя бы на одном <input> хочу регистрацию сделать на ajax, а не могу его осилить...(

Необходимо вставить в скрипт увеличения картинки, скрипт просмотра панорамы 360 - JavaScript
Здравствуйте. У меня такой специфический вопрос, на моем сайте имеется скрипт для увеличения картинки при наведении на нее курсора мыши....

Асинхронный вывод содержимого БД - jQuery
Доброго времени суток. Мне нужно сделать вывод содержимого таблицы из бд (Автор+комментарий) без перезагрузки страницы.(С перезагрузкой...

Не получается асинхронный запрос в ASP.net MVC - jQuery
Пытаюсь асинхронно вызвать екшн Get в контроллере Home, который вовзращает тип string. Вроде бы всё делаю правильно, но ничего не работает ...

Асинхронный сайт (переключение разделов без перезагрузки страницы) - jQuery
Всем привет. Нужна помощь в доработке скрипта позволяющего передвигаться по сайту без перезагрузки страницы. Скрипт взял отсюда...

Асинхронный сервер - C#
Интересует такая тема: Мне нужно реализовать сервер на C#, который будет получать запрос от клиента(json), а после этого будет проводить...

9
Balanaar
651 / 593 / 230
Регистрация: 11.07.2016
Сообщений: 1,819
21.10.2016, 15:16 #2
Rva4, на сколько мне известно, $.ajax() по умолчанию выполняется асинхронно. Могу ошибаться, но делать вроде бы ничего не требуется...
1
Rva4
1 / 1 / 1
Регистрация: 26.01.2016
Сообщений: 215
21.10.2016, 16:28  [ТС] #3
Balanaar, чтобы Ajax выполнялся асинхронно, нужно прописать параметр. Здесь проблема в функции setInterval, нужно чтобы она выполнялась асинхронно

Добавлено через 12 минут
Balanaar, Ошибся, в аяксе по умолчанию асинхронность
0
Balanaar
651 / 593 / 230
Регистрация: 11.07.2016
Сообщений: 1,819
21.10.2016, 16:30 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Rva4, проверил только что. $.ajax() и setInterval() выполняются асинхронно. по умолчанию. обе.

Добавлено через 1 минуту
если точнее, то в setInterval(func, timeout) func() будет вызываться асинхронно. неправильно выразился
1
kalabuni
Супермизантроп
2997 / 2369 / 422
Регистрация: 18.04.2012
Сообщений: 6,927
21.10.2016, 18:53 #5
функция, исполняемая внутри метода setInterval (), не должна быть асинхронной -- по-моему, это должно быть ясно любому здравомыслящему человеку

задачу "связываться с сервером каждые N миллисекунд" надо решать через метод setTimeout (..., N), запускаемый при получении ответа от сервера
1
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1708 / 1252 / 334
Регистрация: 12.01.2011
Сообщений: 4,957
21.10.2016, 19:25 #6
Цитата Сообщение от kalabuni Посмотреть сообщение
задачу "связываться с сервером каждые N миллисекунд" надо решать через метод setTimeout (..., N),
Разве каждые? Она при загрузке страницы 1 раз отрабатывает через N и всё. А setInterval () как раз таки каждые N миллисекунд может связываться с сервером.
Javascript
1
2
3
4
5
6
7
var _ = 1;
          setInterval(function(){
              $.ajax({
                  
              });
              console.log(_++);
          },1000);
1
2
3
4
5
...
Javascript
1
2
3
4
5
6
7
  var _ = 1;
          setTimeout(function(){
              $.ajax({
                  
              });
              console.log(_++);
          },1000);
1
P.S. Возможно Вас не правильно понял.
1
kalabuni
Супермизантроп
2997 / 2369 / 422
Регистрация: 18.04.2012
Сообщений: 6,927
21.10.2016, 20:48 #7
Цитата Сообщение от Azdeman Посмотреть сообщение
Возможно Вас не правильно понял
создаём функцию myFuncSend (), которая формирует запрос к серверу open (), send (), и прописывает обработку ответа по событию onreadystatechange = myFuncReq;
и вот в конец этой последней функции myFuncReq через таймаут N прописываем вызов первой функции myFuncSend (), как бы "рекурсивный"
таким образом получаем многократную посылку запроса к серверу через N миллисекунд после получения очередного ответа от сервера
-------------------------------------------
бытовая аналогия: задание "звони в скорую помощь каждые 5 минут" можно выполнить буквально, а можно выполнить "с умом"

метод setInterval () будет начинать набирать номер 03 каждые 5 минут, вне зависимости от того -- ответили ему или нет, тем самым сбрасывая текущий разговор с оператором
а вот рекурсивный setTimeout () будет заново начинать набирать номер 03 через 5 минут только после закончившегося разговора с оператором
1
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1708 / 1252 / 334
Регистрация: 12.01.2011
Сообщений: 4,957
21.10.2016, 23:09 #8
Цитата Сообщение от kalabuni Посмотреть сообщение
а вот рекурсивный setTimeout () будет заново начинать набирать номер 03 через 5 минут только после закончившегося разговора с оператором
Так и думал.
Цитата Сообщение от Azdeman Посмотреть сообщение
P.S. Возможно Вас не правильно понял.
1
Rva4
1 / 1 / 1
Регистрация: 26.01.2016
Сообщений: 215
22.10.2016, 07:53  [ТС] #9
Вообщем, setInterval прекрасно работает, ошибка была в аякс запросе, точнее в том, что я написал 3 функции с одинаковым названием...Новичек, но спасибо всем за помощь)
0
kalabuni
22.10.2016, 08:17     Асинхронный скрипт
  #10

Не по теме:

Цитата Сообщение от Rva4 Посмотреть сообщение
ошибка была в аякс запросе, точнее в том, что я написал
согласен, именно в том, что вы написали -- Вообщем >> В общем, Новичек >> Новичок

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2016, 08:17
Привет! Вот еще темы с ответами:

Асинхронный чат - C# WPF
Здравствуйте...подскажите решение следующей задачи...делаю асинхронный чат...соединение устанавливается....и вот тут проблема... не понимаю...

Асинхронный запрос - PHP
<form action="reg.php" method="post"> <fieldset> <legend>Товары фирмы:</legend> <input type="hidden" name="name"...

Асинхронный вывод - Delphi WinAPI
В файл ничего не записывается. Я пробовала так: procedure TForm1.Button2Click(Sender: TObject); var f:_OVERLAPPED; str:string; ...

Асинхронный автомат - C++ Builder
Нужна помощь. Необходимо написать программу работы асинхронного автомата. Номер 11


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.10.2016, 08:17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru