Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.10.2013, 18:57
Профессор
Отправить личное сообщение для Dorian_bs Посмотреть профиль Найти все сообщения от Dorian_bs
 
Регистрация: 24.03.2011
Сообщений: 217

setInterval vs for Что лучше?:)
Создаю сервер для онлайн игры.
Встал вопрос, как лучше оптимизировать работу.

Например на сервере есть 1000 игроков. Каждые 0.2 сек нужно каждому отправить данные.

Что лучше?
- Создать 1000-чу setInterval(..., 200) для каждого игрока и выполнять в каждом необходимые функции.
- Создать 1 for(obj in array) обходящий 1000 элементов в 1 setInterval(..., 200).

Буду очень рад услышать Ваши мысли по этому поводу.
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2013, 19:04
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Dorian_bs,
Создать функцию Которая будет вызывать сама себя. Со setTime тра та та.
Присвоить каждому игроку id целочисленному. И всё.
Ответить с цитированием
  #3 (permalink)  
Старый 28.10.2013, 19:05
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Но с for тоже можно. Если не страшно забить всю ОЗУ
Ответить с цитированием
  #4 (permalink)  
Старый 28.10.2013, 19:07
Профессор
Отправить личное сообщение для Dorian_bs Посмотреть профиль Найти все сообщения от Dorian_bs
 
Регистрация: 24.03.2011
Сообщений: 217

koeshiro, то есть Вы считаете данный вариант наиболее оптимизированным? Без использования for и setInterval?
Ответить с цитированием
  #5 (permalink)  
Старый 28.10.2013, 19:09
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Dorian_bs,
да. Ибо насколько знаю после выполнения функции и её перезапуска данные о ней перезаписываются. А вот с for по другому. Всё время все данные остаются. Если пишите на php не забывайте что стандартное время выполнение скрипта до 30 сек.
Ответить с цитированием
  #6 (permalink)  
Старый 28.10.2013, 19:10
Профессор
Отправить личное сообщение для Dorian_bs Посмотреть профиль Найти все сообщения от Dorian_bs
 
Регистрация: 24.03.2011
Сообщений: 217

koeshiro, Вы это имеете ввиду?
updata = function (user) {
     // выполняем необходимые функции
     setTimeout(function  () {
         updata(user);
     }, 200);
}

updata('123456789'); // инициализируем пользователя


PS: нет, я пишу на NodeJS
Ответить с цитированием
  #7 (permalink)  
Старый 28.10.2013, 19:18
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Dorian_bs,
Не совсем. Пример:
function globalfun(num){
var i=0;
function tra-ta-ta(){
//Ваш код 
var s=setTimeOut(function  () {tra-ta-ta()},200);
if(i=>num){cleatInterval(s);}

Вызывать функцию надо после выполнения кода =)
Ответить с цитированием
  #8 (permalink)  
Старый 28.10.2013, 19:22
Профессор
Отправить личное сообщение для Dorian_bs Посмотреть профиль Найти все сообщения от Dorian_bs
 
Регистрация: 24.03.2011
Сообщений: 217

koeshiro, не сильно понял Вашего кода)
Во первых. У нас не используется интервал, а вы пытаетесь его очистить.
Во вторых переменная "i" всегда равна 0.
Ответить с цитированием
  #9 (permalink)  
Старый 28.10.2013, 19:25
Профессор
Отправить личное сообщение для Dorian_bs Посмотреть профиль Найти все сообщения от Dorian_bs
 
Регистрация: 24.03.2011
Сообщений: 217

koeshiro, и еще, на сколько я знаю - setTimeout сам очищается после выполнения.
Ответить с цитированием
  #10 (permalink)  
Старый 28.10.2013, 19:26
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Dorian_bs, i=0? Ясен пень. Ибо в вашем коде должно быть i++ =) А clearInterval написал потому что привычка уже. С надеждой что вы поймёте меня, поймёте мой пример. Хотя надо было писать словами. =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
setInterval и глобальные переменные Почемучкин Events/DOM/Window 11 11.08.2012 14:44
один setInterval внутри другого setInterval-а dadli Общие вопросы Javascript 5 20.03.2012 18:16
setTimeout setInterval и др. mycoding Общие вопросы Javascript 6 28.10.2010 17:26
Что лучше, display или visibility? FirstFrost Общие вопросы Javascript 1 21.07.2010 05:42
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38