Хотел рассказать, как я вижу устройство архитектуры взаимодействия серверной и клиентской частей. И хотел бы узнать спросить, чем плоха или хорошо такая архитектура.
Читать полностью »
Рубрика «javascript» - 563
Архитектура взаимодействия клиентской и серверной частей Web приложения
2012-04-05 в 12:53, admin, рубрики: html, javascript, jquery, архитектура, метки: javascript, jquery, архитектураАсинхронные функции в Javascript и ключевое слово this
2012-04-05 в 10:30, admin, рубрики: callback, javascript, this, Веб-разработка, ооп, метки: callback, javascript, this, оопПри использовании асинхронных функций в классах часто возникает проблема, когда в теле функции невозможно обратиться к объекту класса, вызывающему функцию. Это хорошо видно на примере с аяксом (с использованием jQuery):
function Loader()
{
this.load = function()
{
$.ajax({
url: '/test.php',
success: function(data, textStatus, jqXHR) {
// здесь уже никак нельзя обратиться к объекту класса
console.log(this); // this содержит внутренний объект jQuery,
// вызывающий функцию success
}
});
}
}
(new Loader()).load();
JavaScript на сервере, 1ms на трансформацию
2012-04-05 в 10:10, admin, рубрики: javascript, mail.ru, Блог компании Mail.Ru Group, метки: javascript, mail.ruЗачем?
Вопрос “Зачем?” — самый главный при принятии любого решения. В нашем случае причин было несколько.
Во-первых, люди. Текущий шаблонизатор обрабатывался Си. Все вопросы о его изменениях решались не быстро. А самое главное, что писали шаблонизатор одни люди, а использовали совсем другие.
Вообще это частая и, на мой взгляд, не очень хорошая практика написания инструментов для верстальщиков. Понятно, что им нужны инструменты, но реализуют эти инструменты люди, которые весьма отдаленно себе представляют ежедневные задачи верстальщиков. Скорее наоборот, часто принимаются решения плана «дадим им писать условия и циклы, а больше на верстке ничего понадобится не может». Возможно, это вина самих верстальщиков и их квалификации.
Но в Mail.Ru Group есть целая команда высококвалифицированных людей, знающих JS, способных самостоятельно написать инструмент, а самое главное — они же им и будут пользоваться.
Во-вторых, задачи. Возьмем проект Почта@Mail.ru. Мы не можем отказаться от шаблонизации на сервере – нам нужна быстрая загрузка при первом входе. Мы не можем отказаться от шаблонизации на клиенте – люди должны видеть высокую скорость реакции на их действия, а значит, обязателен AJAX и шаблонизация на клиенте.
Проблема очевидна: два набора совершенно разных шаблонов на сервере и на клиенте. А самое обидное, что решают они одну и ту же задачу. Дублирование логики нас просто измотало.
v8 — это интерпретатор JavaScript, а значит, мы можем получить один шаблон, который работает как на сервере, так и на клиенте.
В-третьих, скорость. Прочитав много статей, в которых хвалят скорость v8, решили, что надо проверить их справедливость. Но сначала нужно было понять, каким мы хотим видеть новый шаблонизатор.
Читать полностью »
Сложный SVG на клиенте и сервере
2012-04-05 в 10:03, admin, рубрики: javascript, node.js, nodejs, raphaeljs, ruby on rails, svg, метки: javascript, nodejs, raphaeljs, ruby on rails, svgЭто небольшая история страданий, боли, взлетов и падений в попытках ускорить работу RaphaelJS на больших и сложных SVG. Если вы страдаете от подобных проблем, то не стоит ждать в конце этой статьи серебряной пули, но, надеюсь, что про наш путь поиска решения будет интересно прочитать всем.
Некоторые аспекты использования PhoneGap
2012-04-05 в 7:43, admin, рубрики: android development, Android sdk, css3, html5, javascript, phonegap, Веб-разработка, Песочница, Разработка под android, метки: android development, Android sdk, css3, html5, javascript, phonegap О PhoneGap и его аналогах, таких как Appcelerator (Titanium Mobile), MotherApp, NimbleKit уже существует достаточно большое количество статей. Основная цель данных фреймворков заключается в предоставлении разработчику возможности создавать приложения для мобильных устройств только с использованием HTML, CSS и JavaScript.
Читать полностью »
Баннер конференции о JS с ошибкой в JS
2012-04-03 в 22:11, admin, рубрики: javascript, Веб-разработка, конференция, метки: javascript, конференцияУвидел баннер предстоящей конференции o JS на тостере. Глаз привычно зацепился и зуд в одном месте дал знать — что-то не так, что-то мимолётное и неявное :)
Собссно — сабж:
Пруф: http://www.w3.org/wiki/Objects_in_JavaScript: One thing to watch out for, though: it's a very common mistake to put a comma after the last item in the object literal’s list of properties (...). Only put commas between properties — an extra comma at the end will cause errors.
Читать полностью »
Интерактивная визуализация данных Envision.js
2012-04-03 в 20:36, admin, рубрики: Flotr2, html5 canvas, javascript, Веб-разработка, графики, диаграммы, метки: Flotr2, html5 canvas, графики, диаграммыEnvision.js библиотека для создания быстрых динамических и интерактивных визуализаций данных на HTML5.
Возможности:
1) Визуализация в реальном времени.
2) Временная шкала
3) Визуализация валют ( как на яндексе прям )
4) Поддержка Ajax в интерактиве.
5) Можно побаловаться фракталами.
Читать полностью »
Онлайн генератор документации для Node.JS проектов
2012-04-03 в 14:55, admin, рубрики: documentation, generator, javascript, jsdoc, node.js, nodejs, online, метки: documentation, generator, jsdoc, nodejs, onlineДокументация — одна из самых важных составляющих любого проекта, особенно если этот проект с открытым кодом, который будут читать другие люди. Чтобы сделать мир opensource чуточку лучше, я попытался собрать свои знания в области организации модулей nodejs проектов и сделать такой инструмент как Makedoc!. Ремарка для адептов ruby: это почти то же, что и rdoc.info для руби.
Этот инструмент анализирует код проекта, выделяет потенциально документируемые куски кода (не важно, с документацией или без), и генерирует статический набор страничек, описывающих проект.
В кратце шаблон использования такой: идем на makedoc.node-js.ru/[githubusername]/[projectname] и видим готовую документацию по проекту. Либо идем на makedoc.node-js.ru/[githubusername] и получаем список проектов для которых можно сгенерировать документацию.
За деталями реализации прошу под кат.
Читать полностью »
Цитатник-корректор для Хабра — в строю (шутка)
2012-04-01 в 17:01, admin, рубрики: 1 апреля, ajax, greasemonkey, HabrAjax, javascript, юзерскрипт, метки: 1 апреля, ajax, HabrAjax, юзерскриптПоскольку в этот день принято шутить, я постарался приготовить ряд особых шуток для Хабра, а также проинтегрировать в своё решение ряд шуток другого разработчика (kafeman). Насколько смешно получилось — судить читателям и, возможно (шутка), пользователям сиих занятных скриптов.
В отличие от традиции скрывать начало шутки в начале повествования и неприметного упоминания о ней тегах или вообще без того, я постарался пометить места, где смеяться — сразу: так удобнее, потому что не тратится лишних психологических ресурсов истощённого и пресыщенного мозга читателя, а дальше последует совершенно нормальное повествование, вплоть до разоблачения интриги сюжета.
Читать полностью »
Unity — выбираем редактор javascript
2012-04-01 в 11:18, admin, рубрики: game development, javascript, unity, unity3d, unityscript, метки: javascript, unity, unity3d, unityscriptИтак, мы хотим написать игрушку на Unity. Юнити предоставляет нам выбор из трех скриптовых языков — Javascript, C# и Boo.
Т.к. с Boo разбираться вообще не хотелось, то для нас стоял выбор JS vs C#. Для наших целей больше подошел именно JavaScript (на самом деле, правильнее было бы называть его UnityScript), т.к. он имеет более мягкую типизацию, да и переводить существующий у нас код из флэшового ActionScript'а было бы гораздо проще.
Но мы столкнулись с проблемой, которую вообще не ожидали обнаружить.
Вы не поверите, но для Unity нет нормального редактора JavaScript'а (речь идет о разработке под Windows, хотя под Мак ситуация, как я понял — не лучше).
Список редакторов можно посмотреть в неофициальной вики.
Итак, что же я хочу от редактора?
Читать полностью »