FINoM, , $, Bala убрать из параметров и объявить как function declaration, тогда ; станет не нужен после них, даст -6.
|
Цитата:
Цитата:
==================== Цитата:
Если начинаешь оспаривать наезды, особенно на фичах-альтернативных популярным фреймворкам, получаешь кучу минусов. Хитрый ход, сделать упор в первых двух комментах, что востребовано в проектах где a) Политикой руководства запрещены тяжёлые фреймворки. b) Разработка приложений с быстрой реакцией |
Цитата:
Цитата:
Гозар уже делал нечто подобное |
Цитата:
|
Цитата:
(Хотя, может, не так и гениально, просто я - тормоз). По поводу поста на Хабре, тут виден серьезный прогресс. Все посты несколькогодичной давности, где автор предлагал отказаться от jQuery были адски заминусованы. Меня интересует не карма-рейтинг-дрочерство, а реакция людей. Тут мнения разделились на ~60/40, Vanilla побеждает. |
Теперь 394 символов :)
|
Цитата:
===================== Цитата:
По-моему благоразумно было сразу обращаться к js аудитории нативщиков и желающих быстрых и минималистических библиотечек. Цитата:
Цитата:
|
Следующая цель - сделать функцию компактнее кода Google Analytics. Нужно совсем немного: дойти до 386 символов, т. е. убрать 8 символов.
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-12418613-4', 'auto'); ga('send', 'pageview');(пробелы и переносы тоже учитываются, этот код предоставляет Гугл) UPD Можно упростить задачу и сравнивать этот код: <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-12418613-4', 'auto'); ga('send', 'pageview'); </script> С этим (предварительно убрав все пробелы) <script>$=function(d,e,f){function c(a,b){return new g(a,b)}function g(a,b){a&&[].push.apply(this,a[e]?[a]:""+a===a?/</.test(a)?((b=d.createElement(b||e)).innerHTML=a,b.children):b?(b=c(b)[0])?b[f](a):[]:d[f](a):(typeof a)[7]?"c"==d.readyState[0]?a():d[e]("DOMContentLoaded",a):a)}c.fn=g.prototype=[];c.one=function(a,b){return c(a,b)[0]||null};return c}(document,"addEventListener","querySelectorAll")</script> Разница в 3 символа. |
С Новым Годом! Bala.js похудела на 18 символов (минус точка с запятой, которую я вернул на бочку). Это сделано благодаря отказу от конструктора в пользу Object.create.
$=function(e,f,g){function c(a,b,d){d=Object.create(c.fn);a&&d.push.apply(d,a[f]?[a]:""+a===a?/</.test(a)?((b=e.createElement(b||f)).innerHTML=a,b.children):b?(b=c(b)[0])?b[g](a):d:e[g](a):(typeof a)[7]?"c"==e.readyState[0]?a():e[f]("DOMContentLoaded",a):a);return d}c.fn=[];c.one=function(a,b){return c(a,b)[0]||null};return c}(document,"addEventListener","querySelectorAll"); |
Цитата:
Ну реально на микрозадачах, решаемых на коленке все с удовольствием откажутся от jQ или собственных библиотечек, если будет текущая Bala.js с такой добавкой . Назови её Bibizyan2016 (или Bibi2016), если жаль трогать Bala.js Выложи, в том жа Хабре, если за неделю 40 плюсов не будет - я съем галстук :D ====================== /Ну а по серьёзному, имхо будет востребовано/ |
Часовой пояс GMT +3, время: 17:41. |