Jump to content

s0rr0w

User
  • Posts

    5,139
  • Joined

  • Last visited

  • Days Won

    32

Posts posted by s0rr0w

  1. поясните пожалуйста один момент

    здесь происходит вызов функции mySelect для коллекции элементов input. при этом в качестве аргумента(единственного!) передаётся массив data

    смотрим код плагина и видим, что по определению функция mySelect принимает два аргумента. element и options. при этом в аргументе element непонятным мне образом оказывается элемент из коллекции, а в аргументе options оказывается массив data. нельзя ли пояснить механизм передачи агрументов?

    Вы путаете немного вызов метода и функции.

    Там вызывается $.fn[pluginName], который уже потом создает инстанс cached.data(pluginName, new MySelect(cached, options));

  2. В документации 'replaced', 'non-replaced', 'bindings', 'Frames and framesets' идут разными разделами. Это всё разделение по поведению?

    Данная часть документации описывает дефолтные стили элементов и их поведение. Как именно они будут реализовываться браузерами, это уже другой вопрос

    Получается, что на данный момент нет формального документа с полным списком замещаемых элементов, на который можно было бы сослаться в случае затруднений, вызванных при попытке однозначного определения замещаемый элемент Х или нет?

    Такого списка не существует и не может существовать.

  3. Получается, что с точки зрения HTML, bindings и replaced - абсолютно разные вещи, а с точки зрения CSS (если ссылаться на перечень примеров замещаемых элементов из рекомендации CSS2) - часть (или все из них) замещаемые?

    bindings - функциональное поведение

    replaced - визуальное

    Input'ы обычно являются замещаемыми элементами, но, кроме визуального поведения, имеют еще и функциональное.

    Подскажите, пожалуйста, как однозначно определить замещаемый элемент с точки зрения CSS. Например, как определить: <details>, </marquee> - это замещаемые элементы или нет?

    Все, чей контент может генерироваться в процессе отображения или существования страницы при помощи специализированных алгоритмов - замещаемые элементы. Т.е. это некая область, контент которой наполняется по своей собственной логике.

    • Like 2
  4. Делайте перебором, потому как на подготовку данных для сравнения любым другим способом можно потратить в разы больше времени, чем на перебор.

    Сравнение можно делать до первого несовпадения элемента массива B с элементами массива A

    Перебор вообще можно не делать, если длины массива не совпадают, сразу возвращать false

    • Like 1
  5. А с функциями у него как дела обстоят? Мы же про них говорим.

    А что с функциями? Их там пять десятков всего. Методы объекта абсолютно равняются функциям php. Не вижу между ними особой разницы

  6. То есть чтобы с PHP можно было нормально жить нужно городить костыли? Фи какая гадость.

    Это необходимо делать только тем, кто сильно нервничает по поводу названий функций. Остальные себя вполне хорошо чувствуют и без костылей.

    Возьмем доку по python'у, те же массивы. И мы видим, что ад с именованием методов есть и у кошерного питончика. Одновременно используется слитное написание имен методов и через нижнее подчеркивание: array.buffer_info() и тут же array.fromfile(f, n) . Заглядываем по-соседству и видим string.ascii_lowercase, string.octdigits. Фи, какая гадость....

    • Like 1
  7. Одно только именование функций для работы с массивами вызывает желание стать Мизулиной и запретить свободное/открытое программное обеспечение.

    Ну так сделайте объект-обертку, назовите все функции кошерно и живите в мире со своей психикой...

    Вы делаете акцент на чем-то, что не является нерешаемой проблемой.

  8. зачем вешать событие на каждое li !!!!!!!!!!!проще использовать делегирование событий....

    А там что, предвидится тысяча <LI>? Какой выигрыш от применения в данном случае делегирования событий? Вы в курсе, что предварительные оптимизации - зло?

  9. (function() { /* код */ })()

    Это укороченный вариант вызова функции. Т.е. просто функция сразу же запустится.

    То же самое, что


    function test(){
    /* code here */
    }
    test();

    Вообще не равнозначная замена. Тут надо читать с конца. Последние скобки () говорят, что нужно выполнить вызов функции. Идем левее - видим еще одни скобки (), которые говорят нам, что это группировка выражения, и нам нужно взять значение вычисления этого выражения. А значением будет ссылка на анонимную функцию, экземпляр которой создается внутри скобок.

    • Like 2
  10. Забавно, что некто не предложил держать число попыток и хэш пароля на удаленном сервере и проверять его там или вариант где и сам архив хранится на сервере(в таком случаи проблем с удалением быть не должно 100%). Ну, а если сервер не доступен то архив вовсе не открывался бы.

    Подобная практика давно используется для хранения SaveData у производителя игр Ubisoft например.

    Если это standalone приложение - то это неприемлемо. Сегодня пообщался со своими ребятами, вывод только один - кроме как держать ключ на серверах, ничего другого не поможет.

  11. И это еще известно сколько символов в пароле, а если неизвестно то перебор паролей от 6-ти до 12-ти символов, вообще займет времени больше чем жизненный цикл вселенной :)

    С радужными таблицами это можно сделать гораздо быстрее. Главное винтами запастись...

  12. Короче, идея нежизнеспособна.

    Да ладно? Генерируем сотню ключей, шифруем с помощью пяти из них симметричным алгоритмом содержимое архива. Шифруем алгоритм смены ключа сетью Петри. При каждой последующей попытке перешифровываем содержимое. Если вначале будут идти правильные ключи, то содержимое можно будет восстановить, в противном случае уже ничего не поможет.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy