Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.03.2018, 08:29
Аспирант
Отправить личное сообщение для Самовар Посмотреть профиль Найти все сообщения от Самовар
 
Регистрация: 28.03.2017
Сообщений: 31

ладно, спасибо за помощь, хоть какое-то направление мысли получил
Ответить с цитированием
  #12 (permalink)  
Старый 21.03.2018, 08:30
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Самовар,
просто не используйте Alert, пора переходить на console.log()
Ответить с цитированием
  #13 (permalink)  
Старый 21.03.2018, 08:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от ksa
Тебе нужно все изменения страницы "уводить" в другой поток.
Я переделал пример. Поменял действия в потоках.
Ответить с цитированием
  #14 (permalink)  
Старый 21.03.2018, 13:34
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Цитата:
про криво работающт экплорер наслышан, но с гуглом думал всё нормально. То есть и для гугла нужно применять специфичекие приемы?
Ну мое мнение что с хромом все в порядке а вот фаерфокс расстраивает своим поведением.
Небольшой пример
<div id="AA">1234</div>
<script>
	var a = document.all["AA"];
	var i = 0;
	while ( i++ < 100000){
		a.innerHTML = i;
	}
</script>

Ни один браузер не будет отрисовывать этот див сто тысяч раз. по тому что это в миллионы раз медленнее чем просто увеличение переменой (свойства) на единицу. Просто у некоторых браузеров возникает желание отрисовать изменения раз а пол секунды.
Раньше в стандарте было указано что рисовать нельзя во время выполнения скриптов в новом этот пункт убрали.
Можешь попробовать сменить доктайп на HTML 4.01. тогда во время работы JS браузер не должен рендерить страницу.

похожая тема
https://javascript.ru/forum/misc/718...tml#post473386
Ответить с цитированием
  #15 (permalink)  
Старый 21.03.2018, 14:00
Аспирант
Отправить личное сообщение для Самовар Посмотреть профиль Найти все сообщения от Самовар
 
Регистрация: 28.03.2017
Сообщений: 31

большая просьба. Помогите мой цикл while переделать в рекурснивный setTimeout. Единственное, чего смог добиться, это бесконечно работающая рекурсия (то есть бесконечный самовызов себя), потому что в результате моей работы в this вместо Т34 попадает Windows, в результате чего все операции с this возвращают NaN. И прочность моего тигренка всегда NaN (что логично, потому что атака Windows тоже NaN)

Tank.prototype.attack = function(target) {
  if (target == Tiger) {
    setTimeout(function() {
      target.hp = target.hp - this.damage;
      tooltipElemTiger.innerHTML = target.hp;
      alert(this.name + " атаковал " + target.name);
      alert("Очков прочности " + target.name + target.hp + " единиц");
      if (target.hp <= 0) this.destroyed(target);
    }, 5000);
  }
};

function battle() {
  setTimeout(T34.attack(Tiger), 1000);
}

Последний раз редактировалось Самовар, 21.03.2018 в 14:04.
Ответить с цитированием
  #16 (permalink)  
Старый 21.03.2018, 16:14
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Самовар,
зачем в такие дебри лезть, просто вместо while

https://codepen.io/anon/pen/qorwVv

Последний раз редактировалось j0hnik, 21.03.2018 в 16:20.
Ответить с цитированием
  #17 (permalink)  
Старый 22.03.2018, 07:03
Аспирант
Отправить личное сообщение для Самовар Посмотреть профиль Найти все сообщения от Самовар
 
Регистрация: 28.03.2017
Сообщений: 31

блин, спасибо, вы реально умные)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятное поведение скрипта eucalipt jQuery 15 14.10.2014 23:10
Непонятное поведение <textarea> nkl Элементы интерфейса 2 22.05.2014 14:13
Непонятное поведение - console.log Artyom Общие вопросы Javascript 20 28.11.2013 20:50
Непонятное поведение в Chrome main.c Opera, Safari и др. 3 10.10.2013 18:52
странное поведение innerhtml alexsum Общие вопросы Javascript 6 24.09.2010 16:17