Ответы пользователя по тегу JavaScript
  • Стоит ли ставить крупный сайт на node.js? Не рано ли?

    @mx2000
    Берите python, если не имеете опыта в node.js. Или erlang, раз уж всё равно хотите попробовать что-то новое для себя.

    Мы в свое время (2011 год, node.js 0.3.x) намучились с callback-hell в коде, утечками памяти и прочим геммороем вида "есть либа А, делает вроде как, что нам нужно, давайте прикрутим", а через 2 месяца автор либы говорит "я потерял интерес, пилить дальше не буду". И приходилось садиться и самим править чужие баги.

    Сейчас, скорее всего ситуация изменилась в лучшую сторону (я не слежу), но какой хайлоад вы хотите получить от однопоточного приложения?) Нода хороша в определенной нише - как full duplex шина данных между клиентами и сервером, если надо, например, чатик а-ля vk.com запилить, или котировки валют обновлять. Работа с базой удобна до определенного момента, вычисления, фильтрация, мэппинг данных - медленные, любой блокирующий вызов (обработка данных) - и 100500 клиентов курят бамбук...
    Ответ написан
    1 комментарий
  • Как осуществить "переадресацию" в другую часть шаблона под другим GET запросом в smarty?

    @mx2000
    а ничего, что smarty - server-side движок? Прямая ссылка на tpl ничего не даст.

    А вообще, вероятно, что HTML-рендер для блока $action eq 'html_tags' лежит в каком-то HTML-элементе - его содержимое нужно очищать по клику на линк и дописывать в качестве innerHTML результат выполнения серверного скрипта. Очевидно, что скрипт должен рендерить только часть HTMLа из всего шаблона.
    Ответ написан
    Комментировать
  • JS Переменная вне функции?

    @mx2000
    1. кол-во записей можно отдавать в самом JSON в качестве метаинформации о данных, например так:
    {"count": 100, "data": { ... 100 записей ... } }

    2. как альтернативный вариант, можно итерироваться по JSON-структуре:
    var records = -1; // начальное значение, "данные еще не посчитаны".

    $.getJSON('json.php?place=1&page=1', function(data) {
    records = 0;
    $.each(data, function (i, item) {
    $("#slideInner").append(item.title);
    records++;
    });
    alert(records); // будет актуальное кол-во записей.
    });

    alert (records); // будет -1


    ЕМНИП, $.getJSON() выполняется асинхронно, следовательно алерт в вашей версии будет вызываться раньше, чем данные будут получены, поэтому имеет смысл генерить некое событие «данные получены» или указывать функцию-продолжение в callback'е getJSON().
    Ответ написан
    Комментировать