Ответы пользователя по тегу JavaScript
  • Как проверить тип значения свойства у обьекта?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Наверное как-то так:
    //Внутри цикла for..in
    if(Number.isInteger(value)) {
        //делаем что-то с целым
    } else {
      //Делаем что-то с не целым
    }


    Подробности.
    Ответ написан
    Комментировать
  • Как можно скрыть или изменить свой код, что бы его нельзя было посмотреть через браузер?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Можно, таких сервисов как грязи, например вот или вот... и ещё с дюжину как онлайн сервисов, так и офлайн софта найти можно.

    Ну и ещё тут можно почитать...
    Ответ написан
    5 комментариев
  • Как адаптивно расположить блоки по высоте?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    На любом разрешении монитора на первом экране прокрутки будет видно только один вид, на втором экране прокрутки - второй и так далее.

    В JS и jQuery не силён. Спасибо за помощь!

    Как на счёт CSS'а?
    .display1, .display2, .displayN {
        height: 100vh;
    }
    Ответ написан
    3 комментария
  • Есть ли в nodejs ввод из консоли типа cin или input?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Это часом не оно?
    Ответ написан
    Комментировать
  • Надо ли менять хэш URL?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Если речь только в сео, то товары, через sitemap.xml и так видны. Нужно ли менять хэш?

    /#page2 -- это скорее не столько для СЕО, сколько некоторые JS-фреймворки такое используют. Ну или просто JS'ы (скрипты) какие-то, т.е. логика так построена, что JS обрабатывает событие "onHashChange" (или как его там?).

    Если оно Вам не нужно, то лично я глобального смысла менять URL не вижу. Ну разве что, если это делать из тех соображений, что если пользователь пришлёт ссылку другу, нужно что бы ранее загруженные товары (в нужном количестве) автоматически загрузились бы.

    И да, момент, сервер (http-сервер) ничего не знает о существовании ни самого хеша, ни того что идёт за ним... По этому, относительно СЕО-полезности, довольно спорный момент. Большинство поисковиков не будет запускать JS на вашей странице, а с отключенным JS (вернее, без него) - не зависимо от того, что там идёт после # - страница не изменится.
    Ответ написан
    Комментировать
  • Почему не работает вывод в элемент?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    document.getElementById("demo").innerHTML = randomString;

    У функции 2 параметра (или 1 как минимум, насколько я понял). Вы не передаёте ей ни одного параметра...
    Ответ написан
  • Как генерировать 4 случайных цифры?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Ссылка. Соотв., минимальное 4-х значное число будет 1000, максимальное 9999. Указываем диапазон от 1000 до 9999 и получаем нужный результат...
    Ответ написан
  • А что если писать сайт вообще в одном файле?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Сказать по правде, Вы немного странно ставите вопрос... мне кажется, актуальнее было бы уточнить, о причинах, по которым нужно объединять файлы в один.

    Понятно, что будет неудобно работать, но это допустим не важно. Привыкнется)))
    Неудобно работать кому, Вам, или браузеру? Если браузеру, то за него не беспокойтесь, он парень сильный, справится. Если Вам - то есть сборщики проектов, коих как грибов в лесу. На крайняк можно написать свои 20 строк кода.

    Речь не идет про крупный проект, портал или магазин. Простой одностраничник)
    Вопрос звучит примерно как: "я тут приехал в какую-то деревню (город с населением 200тыс. человек), стоит ли там соблюдать правила дорожного движения и законы? Это же не миллионник и даже не мегаполис..."

    Дело не в том, скольки-страничник сайт, а в причинах, которые послужили предпосылкой к объединению скрипто-стилевого мусора в один файл. Основных причин было несколько:

    1. Большой файл грузится быстрее, чем много маленьких, по тому, что:
    а) Обращение к дисковой системе происходит 1 раз
    б) Исчезает промежуточный мусорный обмен трафиком между сервером, на загрузку каждого дополнительного файла

    2. Особенность браузеров, работающих по поротоколу HTTP 1.0/1.1 заключается в том, что они не могут открывать более 16-32 соединений (если мне память не изменяет, точные цифры не помню). Это значит, что одновременно более 16-32 файлов скачиваться не будет. А теперь представьте, что у Вас на "одностраничнике" штук 300 спрайтов, на всякие соц. сети, иконки, стрелки и пр. лабуду, и каждый будет загружаться отдельно...

    Я думаю, Вы уже знакомы с протоколом FTP... Попробуйте как-нибудь, ради интереса загрузить на сервер любую CMS, в которой 5-15тыс. файлов по FTP, в распакованном виде. А потом попробуйте упаковать все эти файлы в архив, с нулевым сжатием (TAR или ZIP без сжатия), загрузить на сервер и распаковать. Даже на самом "мёртвом" сервере, даже с учётом времени на распаковку, процедура с архивом обычно проходит в несколько (иногда десятков) раз быстрее, чем загрузка каждого файла по одному. В браузере разница не настолько критична, принцип тот же.

    Среди прочего, хочу отметить, что для протокола HTTP/2, который пока поддерживают ещё не все браузеры (хотя таковых и большинство) и далеко не все хостеры и админы осилили его интеграцию, проблема уже не так актуальна. Но одна из причин, по которой HTTP/2 позволяет ускорить загрузку заключается как раз в том, ограничение с пулом запросов было решено.

    Так же, сжатие всех скриптов в один - позволяет решить проблему порядка загрузки, и добавить скрипту флаг async, что было довольно актуально для меня в ряде случаев. А CSS - тем более грузятся по порядку, т.к. это каскадные таблицы, и как бы Вы их там не вращали, браузер априори будет их читать линейно и так же линейно применять, именно в том порядке, в котором они были указаны к загрузке. И в этом случае, сочетание протокола HTTP/1.0|1.1 и отсутствие многократного дёргания сервера, довольно очевидно.
    Ответ написан
    Комментировать
  • Правильно ли в моем случае использовать JS от CDN Cloudflare?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Да, а чего бы тут может быть не правильного? Идея использовать CDN, - довольно таки не нова и отработана годами. Вероятность того, что браузер посещал CDN, гораздо выше чем то, что браузер посещал Ваш сайт. По этому, CDN по определению более выигрышны в 99% случаев, где их можно применять. Ещё могу порекомендовать Google в качестве CDN-сервиса.

    P.S. Применять CDN можно не везде и не всегда, у меня например на одном проекте скрипты и CSS генерировались/компилировались/сжимались динамически (вместе с библиотеками и в один скрипт), т.к. их было фиерически много и выгрузить все сразу в браузер, не было возможности. Для всего остального СDN - вполне себе хороший выбор.
    Ответ написан
    2 комментария
  • Как при помощи ajax прочитать данные из БД?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    У каждой не pivot/связущей/промежуточной таблицы (хотя и у них бывает) есть обычно уникальный ключ, чаще всего его называют ID. Соответственно, как бы Вы не выводили комментарии, у каждого из них, должен быть какой-то уникальный индентификатор. По этому идентификатору, соотв., отправляете запрос на страницу/контроллер/метод, с ID'шником комментария который нужно обновить (добавить лайк, добавить +1, и т.д.), с помощью всё того же jQuery.post или jQuery.ajax. Данные - массив, примерно такого содержимого:
    {
        id: 10, //ID комментария
        action: 'like', //действие
        data: 'Hello world' //доп. данные
    }

    (*нарисовал очень схематично)

    получаете ответ от сервера, при желании можно проверить сам ответ или HTTP-статус и обновляете соответствущий же комментарий на странице, всё по тому же ID.

    Всё предельно просто :)

    P.S. Таким же образом Вы можете и получить данные о кол-ве лайков (или любом другом параметре) любого комментария или другого объекта. Отправляете запрос, с ID'шником, получаете ответ.
    Ответ написан
  • На сколько надежен JavaScript?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Использую только JQuery. В связи с этим вопрос: на сколько надежен код написанный на jquery в плане работоспособности на всех устройствах и браузерах? Активно использую PostMessage для общения между iframe.
    Ну... у JQuery, включая примерно всего его методы/особенности/возможности, есть список браузеров, с которыми он тестировался на совместимость. Лично у меня за много лет проблем подобного плана с JQuery 1.3+ не возникало пока. Хотя, конечно же, обязательно найдётся какой-нибудь браузер, например, консольный, работающий в текстовом режиме, в котором не будет работать и ещё пара человек, с отключенным JS и ещё...

    Мне кажется, оптимальнее всего, Вам будет сделать вывод самостоятельно основываясь на данных с оф. сайта JQuery касательно совместимости с браузерами :)
    Ответ написан
    2 комментария
  • JQuery. Добавить элемент есть присутствует класс нужный класс?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    $('.container:has(.not)').find('.text').append(новый_элемент);


    Вы об этом?
    Ответ написан
    Комментировать
  • Как зациклить слайдер jquery.glide?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Судя по разделу "Настройки" на выше упомянутом сайте, ответ - никак. То есть, такой настройки там нет.

    Другой вариант ответа - допилить нужный функционал самостоятельно.

    P.S. В документации на оф. сайте, подобного тоже не заметил.
    Ответ написан
    2 комментария
  • Как сделать что бы динамически подгружаемая страница индексировалась поисковиками?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Когда я последний раз занимался подобным вопросом, решения было 3:
    1. Через PhantomJS (если мне не изменяет память, использовался именно он) строить кэшированные копии страниц, с уже загруженными данными (или каким-то другим способом, закэшировать страницу с уже подгруженными данными)
    2. Не использовать JS для подгрузки контента
    3. Подождать, пока Google научиться индексировать такие страницы. Разнообразные альфа/бета-* потуги уже были, но, думаю, это будет не очень скоро, по ряду причин.

    P.S. Если я не ошибаюсь, в гугл-вебмастере есть функция "Посмотреть на сайт как гугл-бот", может пригодиться.
    Ответ написан
    Комментировать
  • Как реализована сетка?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Не совсем то же самое, но по теме:
    1. Masonry
    2. Можно взять любую сетку, от Bootstrap'а например или любую другую готовую

    P.S. "Там" это сделано руками, в большей степени, с помощью абсолютного позиционирования в т.ч.
    Ответ написан
  • Можно ли как-то отследить инпуты через ajax?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Мне кажется, Вам будет проще правильно инпуты именовать, например так:
    <input name="tovar[] />
    или
    <input name="tovar[0] />
    <input name="tovar[1] />
    <input name="tovar[2] />


    Тогда не придётся заниматься такими изысками...

    P.S. В принципе первый вариант - нормально работает, проставлять им номера руками - совершенно не обязательно.
    Ответ написан
    Комментировать
  • Как ввести число в input при клике на div?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Ответ написан
    Комментировать
  • Почему (-1) это true?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Ну... это долгая история, но во многих языках, логика построена так, что числа отличные от нуля - есть положительные (true), при приведении их к булевому типу. В этом есть иногда смысл, но на пальцах объяснить это (вырвав из контекста) - относительно сложно.

    Если хотите изменить логику, можно сделать какую-то сокращенную проверку, типа такой:
    var b = (a > 0);

    Тогда, b будет false, если a будет меньше или равно нулю.
    Ответ написан
    6 комментариев
  • Ссылка открывает заданную страницу во фрейме. Как вывести юзера из фрейма на реальный url?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    <a href="link_address" target="_parent">Ссылка</a>

    Об этом речь?

    Ну и соотв. у ссылки должен быть такой атрибут добавлен, можно через тот же JS. Другие варианты, вряд ли возможны. Повлиять на вложенный фрейм из "внешнего" кода не получиться, из соображений безопасности. Насколько я помню, даже HTML-код фрейма получить нельзя, не то, что изменить... Это сделано, что бы сайты не могли стащить Ваши личные данные, как минимум.
    Ответ написан