![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Собственно, скриптик.... только что из печки.... Кэширования картинок нет, потому в IE дергается.
Это сообщение отредактировал(а) Ghirik - 21.9.2007, 01:22 -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| dstorm81 |
|
|||
![]() бездельник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1178 Регистрация: 18.1.2006 Где: (16RU) Репутация: 20 Всего: 39 |
Кэширования картинок нет, потому в IE дергается.
все дружно должны порадоваться? я рад ;-) Это сообщение отредактировал(а) dstorm81 - 21.9.2007, 09:25 -------------------- на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#) |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
Ghirik, хороший скрипт =) думаю, пригодится в качестве примера, особенно новичками (только, если будете оформлять в виде примера/урока, - было бы хорошо написать все по стандартам, включая отступы и т.д., а так же имена переменных (осознанные, а не "a", "c", "r", намного удобней было бы "changeTime" вместо "t") и функций. Стандартизованный код и читать понятней (и приятней)). И можно в урок выкладывать =)
Это сообщение отредактировал(а) dsCode - 21.9.2007, 10:58 |
|||
|
||||
| Ghirik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Просто сделать просили в соседней теме, под определенную задачу, для той задачи не нужно було кэшировать.
dsCode, если не затруднит, переформатируйте пожалуйста по правилам, а то я не особо их знаю. А для законченности скрипта, чуть позже, добавлю кэширование. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
||||
|
|||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
Ghirik, что-то вроде этого:
Основные правила: 1. Всегда ставьте точку с запятой (пусть для js это не обязательно, но если Вы ее ставите - это признак хорошего тона). 2. Правильные отступы (во многих языках принято делать 2 или 4 отступа. В JavaScript, я, например, привык ставить 2 (исходя из кода больших фрейморков, да даже, если посмотреть js-фалы мозилы - там тоже 2 отступа. Хотя многие ставят 4 - это тоже правильно)). Кстати, есть такой замечательный язык как python, так вот там - отступы - это принудительное (и правильно!) правило. Если Вы ошибетесь с количеством отступов в строке - компилятор выдаст ошибку. Да и еще - никаких табов - все табы должны быть преобразованы в пробелы (потому что в Вашем редакторе табуляция может быть 2 символа, а в чьем-нибудь другом - 4 - и получится бредятина). 3. if ... else.. конструкции пишутся именно так, как в примере выше. 4. после знака припинания и разделителей всегда ставится пробел (for (var i = 0; i < 10; i++) а не for(var i=0;i<10;i++)). 5. Открывающая скобка блока или функции "{" может быть либо в той же строке, либо в новой. Это дело привычки (я привык всегда ставить в той же). Кстати, когда скобка ставится в новой строке - это "Классический способ", а если в той же - "Единственно верный" (название Денниса Ричи, одного из создателей языка Си). 6. имена переменных и функций начинаются с маленькой буквы, слова разделяются заглавными буквами: т.e. так myVar, myFunction(), а не my_var, my_function 7. Константы всегда пишутся большими буквами и разделяются подчеркиванием: MAX_VALUES, MIN_RANGE и т.д. 8. Внутри циклов нужно объявлять локальные переменные (они уничтожаться по выходу из блока), т.е. for (var c = 0...), а не for (c=0)... Ну и т.д. Поищите нотации и документации по оформлению кода. Потому что неправильно оформленный код (даже, если Вы достигли уже больших успехов), всегда будет выдавать непрофессионала. Это сообщение отредактировал(а) dsCode - 21.9.2007, 13:15 |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Уничтожаться по выходу из блока??? 200 вызовов window.setTimeout и столько же вызовов анонимных функций для создания первого параметра в setTimeout - это не слишком много для одного преобразования? |
||||
|
|||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
AKS, насчет переменной "а" - не заметил =) Ну это ерунда.
А что такое тройное удивление? Вообще (не касаемо конкретно JavaScript'a) - да, так оно и есть. Жизнь переменной определена ее блоком. С JavaScript'ом - да, ступил, переменная видна после цикла. Но в любом случае, если дело происходит в контексте функции, то использование в цикле var не "засорит" window по выходу из функции. Это сообщение отредактировал(а) dsCode - 21.9.2007, 16:29 |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
dsCode,
Просто подумал: "Неделю назад Ziroglif очень подробно рассказывал о жизни переменных"... Ghirik, вот так:
возникает ошибка, если a становится < 0 или >= a_i.length... Это сообщение отредактировал(а) AKS - 21.9.2007, 16:36 |
||||
|
|||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
AKS,
ладно, к словам не будем придираться, я говорил об оформлении кода в целом - это не только JavaScript'a касается =) Вот и упомянул, что локальная переменная уничтожится после выхода из блока (во всяком случае, в Си так). Да и в JavaScript так =) только вот цикл для нее - не "жизненный блок" получается, переменная объявляется в контексте функции и принадлежит функции (Variable Object функции, если точнее, но это не суть уже) =) |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Всем большое спасибо!
Стало все понятно по форматированию. Впреть, обещаю выкладывать только нормально форматированный код. На самом деле мне не нравится растягивать код по вертикали, читаемость лучше, но анализировать работу кода неудобно. Приходится постоянно крутить колесо мышки, туда-сюда. Но попробую... Может и привыкну.
это я так... вообще, не думая.... -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Zeroglif |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 644 Регистрация: 22.9.2005 Репутация: 28 Всего: 66 |
Это хорошо. Вот здесь были собраны ссылки "про стиль" по результатам небольшого обсуждения на dklab-e. |
|||
|
||||
| cruelangel |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
>Всегда ставьте точку с запятой (пусть для js это не обязательно, но если Вы ее ставите - это признак хорошего тона).
ничего подобного. точкусзапятой лучше по возможности не ставить. приведу пример:
теперь мы можем добавить ещё один фильтр просто приписав его в конце..
если же нам придётся закомментить один из фильтров - достаточно просто его закомментить:
точкисзяпятой же превращают редактирование в каторгу. >в Вашем редакторе табуляция может быть 2 символа, а в чьем-нибудь другом - 4 - и получится бредятина в случае отступов - ничего подобного. бредятина получается только в случае выравнивания участков строк табами. >после знака припинания и разделителей всегда ставится пробел (for (var i = 0; i < 10; i++) а не for(var i=0;i<10;i++)). такой вариант смотрится ещё лучше: for( var i= 0; i < 10; ++i ) >локальная переменная уничтожится после выхода из блока (во всяком случае, в Си так касательно конструкции for( int i=0; i < limit; ++i ) - будет ли i являться локальной для цикла, а не для функции - зависит от компилятора. |
||||||
|
|||||||
| dsCode |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
cruelangel,
в данном случае основная речь о правильности оформления (правильность в этическом плане, поскольку точка с запятой - не обязательна). Ради Бога, комментируйте, только хорошо бы (в конце!) поставить точку с запятой:
P.S. [1]: покажите мне хотя бы 50 человек, которые отрицают точку с запятой. Я покажу Вам 100, которые говорят о точке с запятой - почти как об обязательной сущности в javascript (опять же из этических соображений). Вообще, мои утверждения основываются на programming style guide'ах. Придерживаться или нет - Ваше дело.
на своей практике видел код, который редактировался в терминале в линухе - там смешались табы и пробелы - в EmEditor'e (редактор такой типа блокнота - кстати, хороший, им пользуюсь) потом сплошная каша получилась. P.S. [2]: опять же - любой style guide порекомендует включить функцию "Преобразовывать табы в пробелы" в Вашем редакторе.
уф = ) устал ссылаться на style guide, но еще чуть-чуть =)) - после for - нужен пробел, после var i - нужен пробел.
не спорю, возможно и так (но в большинстве, которые я видел - переменная i - "исчезнет" после выхода из цикла). Приведите пример компилятора, о котором Вы говорите. Это сообщение отредактировал(а) dsCode - 21.9.2007, 21:31 |
||||||||
|
|||||||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Сейчас занялся доработкой этого скриптика, блин(!) не узнаю свой код
Действительно, так отформатированный код приятно читать. Осталось только привыкнуть так форматировать самому... Я экономил буковы, чтобы текст получался меньше размером, интерпритатор всё же. А если использовать последующее сжатие, то усе путем. -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| cruelangel |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 319 Регистрация: 12.9.2007 Репутация: 4 Всего: 8 |
> Ради Бога, комментируйте, только хорошо бы (в конце!) поставить точку с запятой:
а при перекомментировании - не забыть перенести точкусзяпятой в нужное место... >Вообще, мои утверждения основываются на programming style guide'ах. я уже устал убеждать людей думать своей головой... >уф = ) устал ссылаться на style guide, но еще чуть-чуть =)) - после for - нужен пробел, после var i - нужен пробел. а обосновать сможешь, почему он там нужен? >не спорю, возможно и так (но в большинстве, которые я видел - переменная i - "исчезнет" после выхода из цикла). Приведите пример компилятора, о котором Вы говорите. msvc, емнип Добавлено через 43 секунды Ghirik, не экономь на спичках |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |