Быстрый поиск
Введите фрагмент названия статьи для поиска
Запуск нескольких функций по событию onLoad
04.09.2008 | Категория: Web-мастеру и не только | Автор: ManHunter
Начнем с документации:
onLoad
Событие onLoad происходит при полной загрузке страницы документа или всех фреймов. Оно считается состоявшимся только после завершения загрузки всей страницы, включая изображения.
Это событие часто используется различными скриптами для модификации страницы сразу после загрузки, например прописываются красивые всплывающие подсказки вместо стандартных атрибутов title, подсвечивается код, выполняется инициализация других скриптов или выполняются другие полезные действия в зависимости от фантазии разработчиков. Проблема в том, что разработчиков с их фантазией много, а событие на странице только одно. И получается ситуация, когда хочется подключить на свою web-страничку несколько скриптов разных производителей, и все они для своей работы хотят монопольно использовать событие onLoad. Конечно, при наличии определенных навыков можно подправить исходный код. Но как быть, если исходный код скриптов недоступен, например файлы расположены на стороннем сервере или упакованы (зашифрованы)? Что делать с упакованными и шифрованными скриптами и их "аффтарами" я расскажу потом, это тема для отдельной статьи, а сейчас будет решаться задача с выполнением нескольких функций по событию onLoad.
Читать статью целиком »
Просмотров: 21230 | Комментариев: 14
Генератор случайных чисел на Ассемблере
03.09.2008 | Категория: Образ мышления: Assembler | Автор: ManHunter
При написании программ часто возникает необходимость получить последовательность случайных чисел. В языках высокого уровня существуют штатные функции, а для Ассемблера я использую так называемый "Минимальный генератор Парка-Миллера" (Minimal portable random generator by Park and Miller). От аналогичных алгоритмов его отличает очень малый размер и равномерное распределение получаемых случайных чисел. Математическую модель и описание работы алгоритма можно без труда найти в интернете, поэтому эту информацию я здесь не привожу.Code (Assembler) : Убрать нумерацию
- ;---------------------------------------------
- ; Park Miller random number algorithm
- ; Получить случайное число 0 ... 99999
- ; stdcall WRandom
- ; на выходе EAX - случайное число
- ;---------------------------------------------
- proc WRandom
- push edx ecx
- mov eax,[random_seed]
- xor edx,edx
- mov ecx,127773
- div ecx
- mov ecx,eax
- mov eax,16807
- mul edx
- mov edx,ecx
- mov ecx,eax
- mov eax,2836
- mul edx
- sub ecx,eax
- xor edx,edx
- mov eax,ecx
- mov [random_seed],ecx
- mov ecx,100000
- div ecx
- mov eax,edx
- pop ecx edx
- ret
- endp
- ;---------------------------------------------
- ; Получить случайное число в нужном интервале
- ; Требуется процедура WRandom
- ; stdcall WIRandom,min,max
- ; на выходе EAX - случайное число
- ;---------------------------------------------
- proc WIRandom rmin:dword,rmax:dword
- push edx ecx
- mov ecx,[rmax]
- sub ecx,[rmin]
- inc ecx
- stdcall WRandom
- xor edx,edx
- div ecx
- mov eax,edx
- add eax,[rmin]
- pop ecx edx
- ret
- endp
- ;---------------------------------------------
- ; Инициализация генератора случайных чисел
- ; stdcall WRandomInit
- ;---------------------------------------------
- proc WRandomInit
- push eax edx
- rdtsc
- xor eax,edx
- mov [random_seed],eax
- pop edx eax
- ret
- endp
Читать статью целиком »
Просмотров: 31263 | Комментариев: 7
Нестандартный способ определения браузера Internet Explorer
02.09.2008 | Категория: Web-мастеру и не только | Автор: ManHunter
Начиная с версии 1.2 в языке JavaScript есть интересный метод работы с функциями - arguments.callee. Откроем почитать документацию.
arguments.callee
Специфицирует тело исполняемой в данный момент функции. Свойство callee доступно только в теле функции. Ключевое слово this не относится к исполняемой в данный момент функции. Используйте свойство callee для обращения к функции в теле этой функции.
Проще говоря, результатом выполнения arguments.callee внутри какой-нибудь функции будет тело этой функции. Для наглядного примера код:
Code (JavaScript) : Убрать нумерацию
- function myFunc() {
- return arguments.callee;
- }
- alert(myFunc());
Результат arguments.callee
то есть в точности код вызванной функции. "Ага!" - подумали суровые уральские мужики. - "А если мы поместим в тело функции что-нибудь еще, например
Читать статью целиком »
Просмотров: 6528 | Комментариев: 5
Новость номер 1
01.09.2008 | Категория: Всякая всячина | Автор: ManHunter
Моя территория. Мои правила
Все должно с чего-то начинаться. Этой новостью открывается личный блог ManHunter'а. Мне кажется символичным, что блог открывается именно 1 сентября в День Знаний, ведь я планирую через него поделиться с вами различной полезной информацией. Что из этого получится не знаю даже я сам, но дорогу осилит только идущий по ней. Начинать новое всегда тяжело и я надеюсь на вашу поддержку.
Основной движок блога написан и уже работает, остальные функции будут добавляться по мере их написания. Скоро заработает RSS-канал и вы сможете получать все новости в режиме реального времени.
В статьях иногда будут встречаться куски кода, для удобства восприятия строки в них пронумерованы:
Code (Assembler) : Убрать нумерацию
- xor eax,eax ; Zero register
- inc eax
- cmp dword [edx],eax ; [edx]=1?
- je loc_1
Все статьи авторские, написаны лично мной для этого сайта. При использовании сторонних материалов указаны первоисточники, упоминаемые торговые марки принадлежат их владельцам. Вся информация на сайте выложена исключительно в образовательных целях, является личным мнением автора и не должна быть использована для совершения противозаконных действий. Автор не несет никакой ответственности за результаты применения знаний, полученных на этом сайте. При копировании или использовании материалов ссылка на сайт обязательна.
Просмотров: 8173 | Комментариев: 5