Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

extsrc™.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)

JavaScript *
Хочу Вам рассказать о штуке, которую я изобрел сегодня, чтобы ускорить процесс загрузки сайтов™. Все вы знаете™, что <script™ src="..."></script™> задерживает отрисовку страницы, пока не загрузится этот скрипт™. Если их десятки — это может сереьезно замедлить работу™ сайта — в результате пользователь 20 секунд™ пялится на пустую™ (или недорисованную) страницу из-за какого™-нибудь™ тупящего социального виджета (умножить на десяток этих виджетов).

Не правда™ ли было бы круто, если бы можно было сказать <script™ extsrc™="..."></script™> ("extsrc™" = "грузи потом"), чтобы скрипты загружались после того как страница отрисована?

Все бы хорошо™, но есть document.write… Сегодня я наконец решил его проблему — представляю extsrc™.js — скрипт™, который запустит все скрипты после отрисовки страницы (даже если они содержат document.write — и правильно отрисуется все).

Результат? Супер-быстрая загрузка страниц, даже если там море всяких™ внешних скриптов.

Использование:

Заменяем <script™ src="..."> на <script™ extsrc™="...">.

Итого получается:

<script™ src="http://whiteposts.com/extsrc™_js/extsrc™.js"></script™>
<script™ extsrc™="..."></script™>

все остальное под катом
Всего голосов 171: ↑157 и ↓14 +143
Просмотры 20K
Комментарии 131

Есть ли любители javascript?

Блог компании Ciklum™
В Одессу™, Днепропетровск, а также в Киев и Харьков этой осенью™ приедет Илья Кантор™, создатель javascript.ru (а также algolist.manual™.ru и ряда других™ проектов).

При поддержке компании Ciklum™ он проведет мастер™-классы™ по профессиональному Javascript-программированию для разработчиков Украины.

Ранее мастер™-классы™ проводились в Москве™, Санкт-Петербурге, Киеве и Харькове. В них уже участвовали разработчики многих™ ведущих Российских и Украинских компаний, среди которых — Рамблер, Яндекс™, Yota, РИА Новости и многие™ другие™.

Не каждый™ опытный разработчик может хорошо™ передать свои знания™. Здесь Илья — исключение.
Что за секрет™ у Ильи, почему™ его мастер™-классы™ высоко™ оцениваются среди не только™ начинающих, но и опытных разработчиков?
Возможно, это сочетание большого опыта и живого™ общения — не 15 минут доклада, а 2 дня, в которые идут мастер™-классы™.
Читать™ дальше™ →
Всего голосов 17: ↑11 и ↓6 +5
Просмотры 2K
Комментарии 69

Molpa — поиск по каталогу музыки™

Разработка веб-сайтов™ *


Привет™, Хабрапипл!

Мне очень хотелось бы поделится с вами моим мэшапом, который я сварганил на прошлой неделе™, конечно идея поисковика по музыке™(из вконтакта) мягко говоря™ не нова, но я постараюсь сделать поиск наиболее качественным.

Чаще всего нужно знать какую песню вам искать™, забивать плейлист и слушать, я же предлагаю искать™ музыку™ по исполнителям и слушать ее альбомами.
Читать™ дальше™ →
Всего голосов 18: ↑7 и ↓11 -4
Просмотры 836
Комментарии 28

Impact™ HTML5 Game Engine™ — движок™ на JS

JavaScript *
Просматривая обзоры™ инди-игрушек наткнулся на весьма™ интересный проект™ — Biolab™ Disaster (да поможет ему НЛО выдержать хабраэффект) — браузерный платформер на чистых™ HTML5 & JavaScript, навеивающий воспоминания о тех временах, когда каждую™ игру делали™ с душой.
Коротенькая и незатейливая игрушка крутится необычайно быстро™ и красиво, оставляя за собой приятное впечатление, активированные чекпоинты и маленькие кусочки врагов™ :)
Выполнена она на движке™ автора™ этой же игры, Impact™ HTML5 Game Engine™, в качестве демонстрации его возможностей. Движок™ на данный™ момент™ все еще находится в состоянии разработки, но предлагает уведомить нас электронным письмом по официальному выходу™ в свет.
За новостями можно так же следить в блоге автора™.

На закуску — видео с геймплеем, некоторыми моментами создания игры и редактором уровней — с комментариями автора™.

(Благодаря видео можно узнать™ ссылку™ на официально еще не опубликованный, но вполне™ рабочий level editor™)

Флеш становится все менее значимым, что не может не радовать.
Приятного пятничного ковыряния в коде ^_^
Всего голосов 87: ↑80 и ↓7 +73
Просмотры 18K
Комментарии 57

История создания Javascript

JavaScript *
Перевод
Brendan Eich (создатель языка JavaScript) между делом пишет о том, как язык создавался, и почему™ он такой, какой есть.

JS был обязан™ «выглядеть как Java», только™ поменьше, быть эдаким™ младшим братом™-тупицей для Java. Кроме того, он должен™ был быть написан за 10 дней, а иначе мы бы имели что-то похуже™ JS.

что-то вроде PHP, только™ еще хуже. Его босс Netcsape быстро™ «зарубил» (в июле 1995, если мне не изменяет память™; я сдлелал JS в начале™/середине мая), т.к. это был уже третий™ язык после Java и JS. Было и так трудно™ обосновать то, что у нас 2 новых языка программирования для web.


В то время мы должны™ были двигаться очень быстро™, т.к. знали, что Microsoft идет за нами.


Считайте, что JavaScript (пожалуйста, только™ не «JScript») спас вас от VBScript.


10 дней на то, чтобы сделать лексер™, парсер™, компилятор в байткод (bytecode emitter), интерпретатор, встроенные классы™ и декомпилятор. Помощь™ была только™ с файлом™ jsdate™.c — от Ken Smith из Netscape (который, по нашему™ излишне оптимистичному соглашению, склонировал java.util.Date — Y2K баги и т.д. Гослинг...).

Простите, времени было мало для того, чтобы сделать правильную оптимизацию хвостовой рекурсии. 10 дней почти без сна, чтобы сделать JS с чистого листа, заставить его «выглядеть как Java» (я сделал™, чтобы он выглядел как C), и тайком™ протащить туда его спасительные фишки: first class functions (замыкания сделал™ позже, но они были частью™ плана сразу) и прототипы (примерно как в языке Self).

I'll do better™ in the next life.
Всего голосов 141: ↑118 и ↓23 +95
Просмотры 20K
Комментарии 39

Новые возможности сервиса I'm Sync

Я пиарюсь
С прошлого обновления прошло™ два месяца™. За это время мы успели™ хорошенько потрудится и добавили сразу несколько возможностей, о которых нас уже давно просили.

В новой версии™:
  • Альбомы фотографий и видео
  • YouTube
  • Facebook и Вконтакте
Читать™ дальше™ →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры 392
Комментарии 14

Chromeless: интерфейс браузера своими™ руками™ (HTML, CSS и JS)

IT-компании
Вам никогда не хотелось улучшить привычный интерфейс браузера? Может быть, вы даже пытались сделать это. Если да, то наверняка использовали технологии вроде XUL и XPCOM. Например, в Firefox большая часть интерфейса реализована с помощью XUL, который основан на стандартных веб-технологиях, таких как DOM и JavaScript. Это всё сделано для удобства разработки расширений к браузеру, но в то же время является некоторым барьером, который защищает интерфейс от вмешательства извне.

А если бы ключевые элементы UI были сделаны с использованием HTML, CSS и JavaScript? Cложно™ представить, какие бы дизайнерские идеи и новые концепции появились на свет, если б интерфейс браузера можно было кромсать на манер веб-страницы.
Читать™ дальше™ →
Всего голосов 38: ↑30 и ↓8 +22
Просмотры 3.8K
Комментарии 28

«Spirit™»: Node.js MVC Framework

Node.JS *

Привет™, ребята™! С этого момента я хочу начать™ цикл статтей с подробностями по созданию сообственного MVC фреймворка для node.js, название которому будет — Spirit™.

Первая™ статья™ будет состять из четырех частей™:
1. Идея и миссия™ фреймворка
2. Настройка сервера
3. Создание каркаса фреймворка
4. Создание продвинутого и удобного роутера

Предупреждаю сразу, что статья™ — огромна, с кучей текста™ и большими блоками кода.

Читать™ дальше™ →
Всего голосов 77: ↑65 и ↓12 +53
Просмотры 8K
Комментарии 87

Небольшое замечание для тех, кто переходит на 1.4.3

jQuery™ *
Особенность в 1.4.3 — проявляется в FF3.6.11

Простой пример™:
<table>
	<tr>
		<td myAttr™='1'>1.1</td>
		<td>1.2</td>
		<td>1.3</td>
		<td myAttr™='1'>1.4</td>
	</tr>
	<tr>
		<td myAttr™='1'>2.1</td>
		<td>2.2</td>
		<td>2.3</td>
		<td myAttr™='1'>2.4</td>
	</tr>
</table>


Ранее, до 1.4.3, результат выполнения следующей jQuery™-инструкции был равен 2 (выбраны элементы 1.2 и 1.3)
    $('tr').eq(0).find('td').eq(0).nextUntil('td[myattr™=1]').length™


В 1.4.3 результат будет равен… 3 (выбираются элементы 1.2, 1.3 и 1.4).
Судя по всему, дело в изменении алгоритмов поиска™ jQuery™ а именно™, переходе на использование matchesSelector. Чтобы вернуть поведение в нужное™ русло надо взять значение аттрибута в кавычки:

    $('tr').eq(0).find('td').eq(0).nextUntil('td[myattr™="1"]').length™


Легкой™ отладки тебе, %username%!

UPD: Что интересно, IE8 (а скорее™ всего IE<9) не подвержен «багу». У него просто™ не реализован matchesSelector!

UPD: Есть подозрение, что это баг в FF3.6.11. В Chrome™7 (у него есть matchesSelector!) баг не воспроизводится.
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 495
Комментарии 4

Node.js v0.2.4 и ожидаемые улучшения в ветке v0.3.x

Node.JS *
Прошедшие выходные могут похвастаться двумя релизами Node.js: очередной минорной версией в ветке v0.2.x и официальным релизом ветки v0.3.x.
И пусть разрабатываемая ветка всё ещё отмечена как «нестабильная», в ней ожидаются существенные улучшения производительности, переносимости и добавление новых возможностей, о которых стоит знать уже сейчас™. Тем более, что эта версия™ уже вполне™ работоспособная.
Также в конце топика™ бонус в виде ссылок™ на репозитории пакетов Node.js v0.2.x и NPM (Node.js package manager).
Читать™ дальше™ →
Всего голосов 25: ↑23 и ↓2 +21
Просмотры 1.5K
Комментарии 12

Пошаговая установка Node.js на Windows без виртуалок

JavaScript *


Эта статья™ предназначена для тех, кого бесят мильён™ левых служб и драйверов, которые ставят™ любые виртуалки. Тем, кто будут ставить доп. пакеты™ Node.js
Все остальные могут скачать скомпилированный Node.js node-js.prcn.co.cc
Или же установить Node.js из-под виртуалки nodejs™.ru/25

Прошу под кат
Читать™ дальше™ →
Всего голосов 68: ↑54 и ↓14 +40
Просмотры 58K
Комментарии 19

Простой Javascript Benchmarker

JavaScript *
Как вы замеряете производительность javascript кода?
У меня это происходило так:
  1. создаю™ файл index.html;
  2. копирую откуда™-нибудь™ шаблон™ HTML;
  3. добаляю тэг script™, в котором будет жить тестируемый код;
  4. если нужно замерить работу™ с массивами, то обязательно создаю™ или беру готовый генератор случайных массивов.
Читать™ дальше™ →
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 844
Комментарии 4

Запрещаем использование известных UserJS™

Информационная безопасность *
Из песочницы

Введение


UserJS™ предоставляет пользователям удобный и простой механизм модификации веб-страниц, именно™ благодаря этому многие™ пользователи автоматизирую свои действия с помощью UserJS™, а иногда™ и обходят слабые™ системы защиты™.
Больше™ всего от использования UserJS™ пользователями страдают браузерные онлайн™-игры, многие™ из которых уже начали™ войну против™ UserJS™. Так, например, в игре Travian используются поддельные скрытые веб-формы, которые иногда™ появляются вместе™ с обычными, UserJS™-скрипты, написанные без учета этой особенности, ошибаются и отправляют данные™ через фэйковую форму, за что игрок немедленно получает наказание.
Хотелось бы сразу отметить, что бороться можно только™ с известными UserJS™-скриптами, показанное решение не универсально и не может защитить от любого™ скрипта.
Сегодня я представляю на ваш суд свой метод борьбы™ с пользовательскими скриптами — MD5-хэширование с последующим сравнением. Основные действующие роли играют™ JavaScript и PHP.
Читать™ дальше™ →
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 1.8K
Комментарии 9

WebStorm vs Visual™ Studio™

Разработка веб-сайтов™ *
Хочу поделиться с сообществом открытой недавно для самого™ себя новой IDE от JetBrains—WebStorm, оказавшейся просто™ превосходной, и сравнить ее с Visual™ Studio™ в плане редактирования Javascript.

Disclaimer: пост в основном рассчитан на тех разработчиков, которые работают в стеке .Net и обычно™ не в курсе того, что есть другие™ IDE, намного более подходящие для некоторых задач, чем Visual™ Studio™.
Читать™ дальше™ →
Всего голосов 36: ↑21 и ↓15 +6
Просмотры 20K
Комментарии 38

WYSIWYG HTML редактор в браузере. Часть 1

Разработка веб-сайтов™ *
Перевод
Это первая™ часть перевода статьи™ о свойствах designMode и contentEditable, их поведении и особенностях.

В статье™ рассматриваются базовые принципы и проблемы унификации особенностей редактирования в современных браузерах. Темы рассматриваемые в статье™:
  • Различные методы™ включения режима™ редактирования
  • Команды редактирования
  • HTML генерируемый в процессе редактирования
  • Взаимодействие с DOM
Читать™ дальше™ →
Всего голосов 54: ↑49 и ↓5 +44
Просмотры 17K
Комментарии 11

WYSIWYG HTML редактор в браузере. Часть 2

Разработка веб-сайтов™ *
Перевод
Это вторая™ часть перевода статьи™ о свойствах designMode и contentEditable, их поведении и особенностях.

В статье™ рассматриваются базовые принципы и проблемы унификации особенностей редактирования в современных браузерах. Темы рассматриваемые в статье™:
  • Различные методы™ включения режима™ редактирования
  • Команды редактирования
  • HTML генерируемый в процессе редактирования
  • Взаимодействие с DOM
Читать™ дальше™ →
Всего голосов 50: ↑45 и ↓5 +40
Просмотры 12K
Комментарии 46

WYSIWYG HTML редактор в браузере. Часть 3

Разработка веб-сайтов™ *
Перевод
В статье™ описана практика использования свойств designMode и contentEditable, а так же сопутствующих API на примере создания простого текстового редактора.
Читать™ дальше™ →
Всего голосов 32: ↑29 и ↓3 +26
Просмотры 9.4K
Комментарии 18

jQuery™:step() селектор произвольной позиции

jQuery™ *
Перевод
Одна из самых потрясающих вещей в jQuery™ — это движок™ селекторов. Доступ™ к элементам DOM используюя селекторы в jQuery™ становиться довольно простой задачей, еще и потому™, что большинство селекторов используют те же выражения что и селекторы в CSS. Это то что веб-дизайнеры НЕ программисты могут легко усвоить.
Это статья™ — упражение в создании произвольного слектора, вы можете™ её использовать, как руководство по созданию своего™ собственного селектора.
Читать™ дальше™ →
Всего голосов 49: ↑36 и ↓13 +23
Просмотры 9.7K
Комментарии 38

Рецепт™ быстрого приготовления расширений под популярные браузеры

Разработка веб-сайтов™ *
0147 (1)

Возникла задача™ написание простенького расширения под все (по возможности) популярные браузеры. Деятельность расширения заключается во внедрении javascript`а в тело документа.
Читать™ дальше™ →
Всего голосов 90: ↑80 и ↓10 +70
Просмотры 1.1K
Комментарии 51

Вы наверное шутите™, мистер™ Дал, или почему™ Node.js — это венец эволюции веб-серверов

Разработка веб-сайтов™ *
Из песочницы
WTF is Node.js?

Node.js — вещь, вокруг™ которой сейчас™ много шума, восторженных отзывов и гневливых выкриков. При этом, по моим наблюдениям, в умах людей закрепилось следующее представление о том что же такое Node.js: «это штука, позволяющая писать™ на JavaScript на серверной стороне и использующая JavaScript-движок™ от Google™ Chrome™». Поклонники языка восторженно вздохнули: «Ах! Сбылось!», противники же процедили сквозь™ зубы: «Ну вот только™ еще этой ерунды™ с прототипами и динамической типизацией нам на серверах не хватало!». И дружно™ побежали ломать™ копья в блоги и форумы™.

При этом многие™ представители обоих лагерей придерживаются мнения™, что Node.js — это эзотерическая игрушка, веселая задумка для переноса языка браузерных сценариев на «новые колеса™». Дабы быть до конца честным, признаюсь, что я так же придерживался подобной точки зрения™. В один прекрасный момент™, я набрался духу и решил «копнуть поглубже». Выяснилось, что создатель Node.js Райан Дал далеко™ не фанатик, а человек, пытающийся решить™ реальную проблему. А его творение — не игрушка, а применимое на практике решение.

Так что же такое Node.js?
Всего голосов 243: ↑235 и ↓8 +227
Просмотры 28K
Комментарии 252