Минимальный JS шаблонизатор

На основе JavaScript Micro-Templating от John Resig сделал для себя минимальный шаблонизатор, который содержит все необходимые возможности, лишь 284 байта.

Из плюсов по сравнению с вариантом от John Resig: работает при ‘use strict’, позволяет использовать одинарные кавычки в шаблонах, кеширует не текст конкретного шаблона, а всю финальную функцию шаблона.

Исключил функцию шаблона print, т.к. сам ни разу ей не пользовался, всегда можно обойтись без неё.

(function(w){var c={};w.$T=function(s,d){return(s in c)?c[s](d):(c[s]=new Function("d","var p=[];with(d){p.push('"+document.getElementById(s).innerHTML.replace(/[\r\n]/g," ").replace(/<%=(.*?)%>/g,"',$1,'").replace(/<%(.*?)%>/g,"');$1;p.push('")+"')}return p.join('')"))(d)}})(window);

Код создаёт глобальную функцию $T шаблонизатора. Пример использования.

js snippet template

JS парсер query string

Еще один сниппет, который постоянно использую.

var query=(function(){var q={},t1=location.search.substring(1).split('&'),t2;for(var i=0,l=t1.length;i<l;i++){t2= t1[i].split('=');q[t2[0]]=decodeURIComponent(t2[1]);}return q;})();

query - объект, содержащий все параметры из строки запроса.

js query string snippet

Twitter Bootstrap Modal Opera 12 Fix

После обновления браузера Opera до 12 версии перестала работать анимация в плагине Modal Twitter Bootstrap.

Появляется лишь серый фон, клик его закрывает, но весь сайт блокирован невидимым слоем.

Есть два решения:

  1. Убрать класс fade у слоя модального окна, что просто отключит анимацию, окно будет появляться сразу.
  2. Поправить исходники: вставить
    if (jQuery.browser.opera && parseInt(jQuery.browser.version) >= 12) return 'ontransitionend';
    сразу перед
    var a=document.createElement("bootstrap")
    в файле bootstrap.min.js

—–

There is two solutions:

  1. Remove fade class from div with modal content (just disable animation).
  2. Fix sources: add
    if (jQuery.browser.opera && parseInt(jQuery.browser.version) >= 12) return 'ontransitionend';
    before
    var a=document.createElement("bootstrap")
    in file bootstrap.min.js

Лимит исходящих запросов в node.js

Если Вы используете node.js для выполнения асинхронных запросов в большом количестве, то могли столкнуться с проблемой, что они стоят в очереди из 5 штук.
Документация по http.request и поиск не дал быстрого ответа, привожу решение:

var agent = http.getAgent(host, port);
agent.maxSockets = 100;

var request = https.request({agent: agent, …

Передача agent в параметрах запроса так же устанавливает заголовок “Connection: keep-alive”, что так же положительно сказывается на производительности.

nodejs лимит соединения connections agent request

Аналог hex2bin одной строкой

Возможно, кому-нибудь будет полезно.

В PHP есть полезная функция bin2hex, которая прекрасно работает. Но обратная функция hex2bin отсутствует. Мне тоже любопытно, почему.

Довольно быстро гуглятся примеры функций на несколько строк, но я предлагаю решение в одну строку:

$bin = pack('H*', $hex);

php hex2bin решение

Ребята продолжают работать. В этот раз выкатили свой файлообменник. А ведь менее месяца назад Андрей Рогозов говорил:
“ — Такие шаги подрывают доверие к платформе и разрушает экосистему равных условий. Мы движемся в другом направлении — закрываем...

Ребята продолжают работать. В этот раз выкатили свой файлообменник. А ведь менее месяца назад Андрей Рогозов говорил:

— Такие шаги подрывают доверие к платформе и разрушает экосистему равных условий. Мы движемся в другом направлении — закрываем родные сервисы «ВКонтакте», оставляя API для доступа к данным и больше пространства для деятельности сторонних разработчиков.

  Что же, ок. За подрыв доверия и разрушение экосистемы!

вконтакте рогозов файлообменник

Вконтактепедия

Видимо, один из разработчиков В Контакте, Роберт Паттинсон Олег Илларионов занимается созданием уютненькой википедии внутри сайта.

Статья для примера: http://vkontakte.ru/ru/Атеизм . Интересно, что часть статей уже успели зафлудить или наставить ссылки на приложения.

Всё-таки идея всего интернета внутри одной сети не отпускает.

вконтакте википедия

Русский last.fm

В Контакте пытаются сделать всё и вся. Сегодня был запущен сервис рекомендаций в аудио. То они говорят, что хотят быть лишь платформой и концентрироваться на базовых функциях и API, то одним махом убивают рекомендательные приложения, например, Кассандра ( http://kss.fm )

вконтакте аудио last.fm


Indy Theme by Safe As Milk