Задать вопрос
  • Как пройти верификацию аккаунта в DigitalOcean?

    @bondbig
    Напиши "HTTP, SMTP"
    Не помню такого вопроса в анкете
    Ответ написан
    Комментировать
  • Как реализовать передачу произвольных переменных в функции в рамках потока series (node.js (async.js))?

    Что-то в стиле
    function taskFirst(k, v, next) {
        console.log(k, v);
        next(null, 'ok1');
    }
    
    function taskSecond(k, v, next) {
        console.log(k, v);
        next(null, 'ok2');
    }
    
    function run() {
        var g1 = "Something";
        var g2 = "Something";
        var g3 = "Something";
        var g4 = "Something";
        async.series([
            taskFirst.bind(null, g1, g2),
            taskSecond.bind(null, g3, g4)
          ], function(error, result){
    
          }
        );
    }
    Ответ написан
    Комментировать
  • Как использовать Nodetime?

    affka
    @affka
    http://affka.ru
    Использовать очень просто, вставляешь маленький кусок кода в свой проект и далее идёшь смотреть на сайт nodetime. Там есть множество параметров на любой вкус. Nodetime может много что мониторить, он сам находит используешь ли ты БД, редис, хттп запросы и мониторит их.
    Так же он мониторит системные параметры (цпу, load average, ...) и позволяет делать срезы памяти приложения.
    В общем, для начала нужно определиться что тебе вообще мониторить нужно.
    Ответ написан
    1 комментарий
  • Есть ли какие-то "особенности" у node.js require?

    @AndyGrom
    Web-developer
    Никаких утечек самого require не будет. Но беда в Вашем подходе следующего характера. require синхронный. Вы используете синхронный метод в асинхронной функции - это, в принципе плохо. Все вызовы require необходимо поместить в начало модуля, чтобы они были вызваны при загрузке модуля. Почитайте про хорошие практики по node.js в том числе и на Хабре. Вывод простой - синхронный код - зло.
    Ответ написан
    1 комментарий
  • Есть ли какие-то "особенности" у node.js require?

    affka
    @affka
    http://affka.ru
    Память течь не должна, @virpool прав. Я бы не рекомендовал использовать requirejs для ноды - он сильно усложняет отладку (когда действительно потребуется искать утечки памяти).
    Ответ написан
    Комментировать
  • Как лучше организовать веб-сайт?

    JS Rich-фронтед лучше потому что у клиента не перегружаются страницы и ресурсы - меньше трафика, быстрее скорость отклика.

    Допустим можно сделать на Angular.js или Backbone и реализовать JSON RESTful API, для его документирования смотреть в сторону Swagger - есть привязки к tastypie. И проганять весь фронтенд на node.js через prerender.io что бы была у роботов возможность индексировать нормально страницы.

    Вот "серверная или клиентская шаблонизация" тут уже было много-много холиваров.
    Люди пытались писать гетерогенные шаблонизаторы которые исполняются и на сервере и на клиенте, Jade к примеру. Поддерживать такое бывает довольно сложно, но никто не запрещает попробовать. Поисковые роботы индексируют "без JS", либо гугл 2-3 раза в неделю "с JS", что собственно полная лажа для SEO. Я пошёл путём наименьшего сопротивления, сначала делал prerender в phantomjs, а потом вышел prerender.io и счастью моему не было придела.

    Важно понимать что node.js в таком случае не резиновый, и при больших нагрузках важно обеспечить хорошее http кэширование - расстановку if-modified-since, и etag'ов. Для этого я использую специально допиленный кэширующий плагин nginx. Вообще поддержка http кэширования в rich frontend'ах сейчас очень больная тема. Её просто нет, и это вызывает много проблем.
    Ответ написан
    Комментировать
  • Рост количества проектов, как сохранить качество?

    @haste
    Ответ написан
    Комментировать
  • Кеш ajax-запросов в jquery — где здесь логика?

    serega011
    @serega011
    Видимо люди считают, часто бывает так что запрос с одинаковыми параметрами по одному и тому же адресу возвращает одно и тоже, а значит можно кэшировать. Если Вас такое поведение не устраивает — отключайте кэширование.
    Ответ написан
    Комментировать
  • Большая нагрузка на браузер при вкл jquery?

    Mithgol
    @Mithgol
    Похоже, что в Вашем коде при каждом наведении (hover) загружается «Cloud Zoom» из Сети (getscript), что само по себе способно создать колоссальную нагрузку:
    $(document).ready(function(){
       $('#zoom1').hover(function(){
          $.getscript('js/cloud-zoom.1.0.2.min.js', function(){
             testAjax();
          });
       });
    });
    

    Уместно, по меньшей мере, переставить местами обработчики событий, чтобы сперва один раз загружался скрипт «Cloud Zoom», а затем (когда он пришёл) назначался обработчик наведения мыши на иллюстрацию (если $('#zoom1') является именно иллюстрацией):
    $(function(){
       $.getscript('js/cloud-zoom.1.0.2.min.js', function(){
          $('#zoom1').hover(function(){
             testAjax();
          });
       });
    });
    

    В скрипте «Cloud Zoom», судя по его коду, не предусмотрен собственный механизм для приостановки эффекта лупы. Вы, если искали такой механизм, можете попробовать отодрать обработчики событий от иллюстраций и галерей:
    $('.cloud-zoom, .cloud-zoom-gallery').unbind();
    

    После этого можно попробовать перезапускать эффект лупы тем способом, который в самóм плагине «Cloud Zoom» используется в самом начале кода:
    $('.cloud-zoom, .cloud-zoom-gallery').CloudZoom();
    

    Естественно, идеальная работа не гарантируется: это просто напрашивающийся «грязный трюк» («dirty hack»).

    Сразу скажу ещё, что «грязный трюк», может быть, и не нужен ещё: если достаточно того, чтобы плагин «Cloud Zoom» не начинал автоматически набрасываться на все имеющиеся картинки и галереи на странице (то есть скачивать чёртову уйму крупных иллюстраций), а начинал бы действовать только при наведении мыши на картинку, то хватит всего двух шагов.

    Во-первых, отредактируйте используемый код «Cloud Zoom», убрав оттуда автозапуск. В коде джаваскрипт автозапуска идёт в одну строку, но я для красоты напишу его в структурированном виде:
    $(document).ready(function () {
        $('.cloud-zoom, .cloud-zoom-gallery').CloudZoom()
    });
    


    Во-вторых, вместо убранного автозапуска следует вручную написать запуск, срабатывающий при наведении мыши на иллюстрацию или галерею:
    $('.cloud-zoom, .cloud-zoom-gallery').hover(function(){
       $(this).CloudZoom();
    });
    

    Если же окажется, что многократный запуск CloudZoom(), случающийся после каждого наведения мыши, создаёт неприятные эффекты, то можно пометить иллюстрации и галереи некоторой пометкою, и снимать её после запуска CloudZoom():
    $('.cloud-zoom, .cloud-zoom-gallery').addClass('CloudZoomNotRunning').hover(function(){
       var $this = $(this);
       if ($this.is('.CloudZoomNotRunning')){
          $this.CloudZoom().removeClass('CloudZoomNotRunning');
       };
    });
    

    Естественно, весь такой код, на .CloudZoom() основанный, следует запускать только после того, как код плагина «Cloud Zoom» ужé загружен getscript().

    Точно такую же цепочку .addClass(…).hover(…), несомненно, придётся по разу с нуля применять и на каждую такую новую иллюстрацию или галерею, которая добавлена на страницу AJAXом.
    Ответ написан
    1 комментарий
  • С чего начать создание интернет-магазина?

    @Masterkey
    начните с поиска аудитории — если есть покупатель, в особенности постоянный или постоянно прибывающий, то остальное детали.
    попробуйте вначале сделать просто витрину (можно даже статическую), с телефонным заказом и/или с заказом через форму обратной связи.
    когда у вас появится поток заказов для которого записной книги будет мало, то тогда появятся и деньги для е-магазина (по крайней мере вы сможете выделить на дизайн и создание достаточно средств).
    Ответ написан
    1 комментарий