Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
isIE — согласен, это по привычке, оно интуитивно понятно. Это как бы говорит: «а вот для IE поступим иначе»Ну вот ровно вот это — плохой подход. Думаю, все хаки, которые вы использовали, уже не нужны в IE9, а он скоро выйдет.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<div id=dGL></div>
Давайте даже такую простую задачу оформим в лучших традициях ООП
Ниже будет скрипт с теми самыми перегруженными методами, которые, если бы применялись в наследовании, дали бы тот самый не рекомендуемый в последней статье эффект размножения функций и траты памяти.
if(conf.w ==null) conf.w = 402; //параметры, не будут жить как замыкания
if(conf.h ==null) conf.h = 321;
if(conf.o ==null) conf.o = g('dbGL1');
this.cvs и this.gen объявлены с this, а w и h — с var?this.show — это не оптимизация, а кромешный ужас. Их надо было схлопнуть и ни в коем случае не оптимизировать. Тормозит явно не банальный «иф». Вы, блин, arc в цикле делаете, и при этом выносите if, увеличивая код в 3-4 раза! А полученный результат от этого — ускорение в 0.01%. Это если повезет. if(!isIE)
o.querySelector('.gen #' + oId).innerHTML = val;
else
g(oId).innerHTML = val;
this.initCvs, если отсутствует метод querySelector?document.getElementsByName('rule') в this.checkRuleif(mthd =='pre'){ остался для меня сущей загадкой. А перечитал его раз 5, но так и не понял, зачем он нужен. Между прочим, тут видно один из недостатков перегруженного конструктора — непонятно к какой области видимости относится какая переменная. Долго искал, где взялась othis.showmthd, o, s, q, l, pi2, z2, z21, z3, z6, grid, rect, x, y
conf, o, GL, w, h, z, a, iStop, iStart, okrz21 = z/2.3 (где логика?), q — канвас-контекст, а okr — сокращение от русского слова «окружение».спойлеров на хабре нетСпойлер — это информация. То, что вы называете спойлером, можно назвать «катом» (cut), например.
GL.cvs.width = GL.cvs.width;
if(!GL.rect){
if(...){
…
}else{
…
}else{
…
}else{
...}
}
> canvas.width = canvas.width; // clears the canvas
Давайте даже такую простую задачу оформим в лучших традициях ООП
Javascript и canvas в игре «Жизнь» Джона Конвея