Хм а я не особо понимаю, что в этом такого оО сложного и инновационного ?=)
по сути по ссылке сделать для вставки и один маленький скриптик, который сделает модальное окно в котором есть этот объект?
тем более что все физические ресурсы обеспечить youtube=)
Во-первых прослушка не юзает никаких ресурсов, ее можно даже в 200мс сделать (при современных мощностях, 1 проверка одной булевой переменной в 200мс фигня), при этом она используется ТОЛЬКО тогда когда пользователь САМ забивает адрес в адресбар.
Пы.Сы. Вот и возникает проблема, пользователь ввел адрес в строчку, как обработать этот адрес? код какой ссылки нужно обработать? =)
Во-вторых вы опять таки меня не поняли, я же сказал, для первой задачки ваш метод лучше, т.к. проще.
Но если у вас есть >10 взаимо-свзяаных объектов не ссылок, каждый из которых меняет состояния другого.
Ваш подход, заставляет каждому из >10 элементов знать про другие >9 и вызывать методы из других 9ти и каждый из этих элементов должен как то устанавливать другие >9… Будет просто каша которую не разрести, будут странные и не отлавливаемые ошибки и тп и тд… И вся система будет держатся на соплях.
Мой же метод позволяет каждому элементу знать, только о себе, и иметь одну функцию, которая принимает адрес, причем который заведомо относится к данному элементу, обрабатывая адрес устанавливать себя как нужно. Дальше если этот объект вызывает изменение адреса, все остальные которых будет касаться этот адрес себя установят как надо.
Если задача такая, что у нас сайт и на нем куча ссылок по которым переход происходит, и одно поле $("#content") где мы заполняем результат от перехода, то да, проще сделать $(«a»).click(function(){some_code});
Ну а если у нас есть дофига разнообразных объектов, которые зависят от текущего адреса, и каждый из этих элементов может адрес менять, то с вашим методом, возникнет очень много лишних строк, ошибок, зависимостей и код станет трудно редактируемым и нечитабельным, поэтому нужен именно маршрутизатор, который должен выполнять колбеки нужных функций для нового адреса.=)
А не те 100500 строк не нужного кода в библиотке .hashchange() + еще поиск скрипта делающего то что мне нужно занимает больше чем написание нужного кода.
Плюс суть моего скрипта от того каким образом происходит hashchange никак не меняется=)
Мы используем регекспы, для определения нужно ли вызвать так сказать событие у определенного объекта hash чейнжед=)
Берем создаем $.Router() у которого будут два паблик метода:
1) set — Изменить hash
2) bind (regExp, callback) — callback принимает строчку запроса. Уже объект принявший заботится дальше о корректности
При этом нужно еще одно это каждые 50-100мс проверять изменился ли адрес и если изменился то вызывающая соответствующие колбеки.
И того у мя вышло 80 строк. с красивым форматированием кода.
Следовательно дальше в системе описываем свои классы и объекты, в которых есть функция обработчик адрес, принимающая адрес.
Все никаких зависимостей и чистота кода.
Нет это просто вы не поняли. Т.к. скорее всего либо машины нету либо мак не любите…
Алгоритм мак авто такой:
1) Подъехал
2) Заказал
3) Получил
4) Доехал до стоянки
5) Хаваешь
6) Опп жирные руки… чё делать?!? вставать из машины не хочется то как… И тут СуперПолотенце придет на помощь=)
— Базовое расширение (jquery.pngfix, jquery.keyboard, jquery.corner....)
они реализую базовые часто нужные функции для реализации разнообразных плюшечек
— Плюшечки
всякие подсказки, слайдеры, кнопочки и формочки, собственно то что является дизайном и интерефейсом сайта.
Они в разных проектах часто (чтобы было удобно) сильно отличаются.
=> Есть два пути
1) Изначально написать то что нужно
2) Найти что-то похожее ( и это может очень много времени занять), разбираться в чужом коде, исправлять баги автора, переписать почти все, исправить опять баги, и получить недоделанное первое с багами за намного больше времени….
на хабре такой ответ можно писать только если %username% хвастается своим гипер крутым плагином, иначе можно огрести.
Плагин кстати действительно УГ.
Чтобы сделать нам нужно всего то описать функцию .tooltip()
1) Получаем данные о диве $(this).width(), $(this).height(), $(this).offset().left, $(this).offset().right
2) Создаем див новый который находится в нашем текущем с специальным классом, подсказки с помощью этих кординат (5 классов школы хватит, чтобы посчитать координаты длину и высоту)
3) Заоплняем див подсказки
4) прикручиваем к $(this).mouseover(function(){}) и $(this).mouseout(function() {}) внутри функции получаем див подсказки и делаем show, hide()
В чем такая сложность самому сделать? Быстрее имхо чем искать чужой код=)
по сути по ссылке сделать для вставки и один маленький скриптик, который сделает модальное окно в котором есть этот объект?
тем более что все физические ресурсы обеспечить youtube=)
Ну вы путаете немного…
Во-первых прослушка не юзает никаких ресурсов, ее можно даже в 200мс сделать (при современных мощностях, 1 проверка одной булевой переменной в 200мс фигня), при этом она используется ТОЛЬКО тогда когда пользователь САМ забивает адрес в адресбар.
Пы.Сы. Вот и возникает проблема, пользователь ввел адрес в строчку, как обработать этот адрес? код какой ссылки нужно обработать? =)
Во-вторых вы опять таки меня не поняли, я же сказал, для первой задачки ваш метод лучше, т.к. проще.
Но если у вас есть >10 взаимо-свзяаных объектов не ссылок, каждый из которых меняет состояния другого.
Ваш подход, заставляет каждому из >10 элементов знать про другие >9 и вызывать методы из других 9ти и каждый из этих элементов должен как то устанавливать другие >9… Будет просто каша которую не разрести, будут странные и не отлавливаемые ошибки и тп и тд… И вся система будет держатся на соплях.
Мой же метод позволяет каждому элементу знать, только о себе, и иметь одну функцию, которая принимает адрес, причем который заведомо относится к данному элементу, обрабатывая адрес устанавливать себя как нужно. Дальше если этот объект вызывает изменение адреса, все остальные которых будет касаться этот адрес себя установят как надо.
Если задача такая, что у нас сайт и на нем куча ссылок по которым переход происходит, и одно поле $("#content") где мы заполняем результат от перехода, то да, проще сделать $(«a»).click(function(){some_code});
Ну а если у нас есть дофига разнообразных объектов, которые зависят от текущего адреса, и каждый из этих элементов может адрес менять, то с вашим методом, возникнет очень много лишних строк, ошибок, зависимостей и код станет трудно редактируемым и нечитабельным, поэтому нужен именно маршрутизатор, который должен выполнять колбеки нужных функций для нового адреса.=)
Проверка изменения hash-a делается по сути так (ну в сокращении без оберток)
var prev ="";
function changed() {}
recheck = function() {
if(prev != document.location.hash){
prev = doucment.location.hash;
changed();
}
}
setInterval(recheck, 100)
А не те 100500 строк не нужного кода в библиотке .hashchange() + еще поиск скрипта делающего то что мне нужно занимает больше чем написание нужного кода.
Плюс суть моего скрипта от того каким образом происходит hashchange никак не меняется=)
Мы используем регекспы, для определения нужно ли вызвать так сказать событие у определенного объекта hash чейнжед=)
ну допустим делаем так
Main = {
hashChanged: function(){
},
init: function() {
$.Router.bind("\/#Main(.)*", Main.hashChanged);
}
}
И так далее=) красота
По мне мой велосипед лучше чем ваш.
Берем создаем $.Router() у которого будут два паблик метода:
1) set — Изменить hash
2) bind (regExp, callback) — callback принимает строчку запроса. Уже объект принявший заботится дальше о корректности
При этом нужно еще одно это каждые 50-100мс проверять изменился ли адрес и если изменился то вызывающая соответствующие колбеки.
И того у мя вышло 80 строк. с красивым форматированием кода.
Следовательно дальше в системе описываем свои классы и объекты, в которых есть функция обработчик адрес, принимающая адрес.
Все никаких зависимостей и чистота кода.
А в вашем случае быдлокод напрашивается прям=)
А так о ужас!
Это ужасно, когда количество вакансии в мире можно пересчитать на пальцах=) Конкуренция етпи…
Алгоритм мак авто такой:
1) Подъехал
2) Заказал
3) Получил
4) Доехал до стоянки
5) Хаваешь
6) Опп жирные руки… чё делать?!? вставать из машины не хочется то как… И тут СуперПолотенце придет на помощь=)
— Базовое расширение (jquery.pngfix, jquery.keyboard, jquery.corner....)
они реализую базовые часто нужные функции для реализации разнообразных плюшечек
— Плюшечки
всякие подсказки, слайдеры, кнопочки и формочки, собственно то что является дизайном и интерефейсом сайта.
Они в разных проектах часто (чтобы было удобно) сильно отличаются.
=> Есть два пути
1) Изначально написать то что нужно
2) Найти что-то похожее ( и это может очень много времени занять), разбираться в чужом коде, исправлять баги автора, переписать почти все, исправить опять баги, и получить недоделанное первое с багами за намного больше времени….
Плагин кстати действительно УГ.
Чтобы сделать нам нужно всего то описать функцию .tooltip()
1) Получаем данные о диве $(this).width(), $(this).height(), $(this).offset().left, $(this).offset().right
2) Создаем див новый который находится в нашем текущем с специальным классом, подсказки с помощью этих кординат (5 классов школы хватит, чтобы посчитать координаты длину и высоту)
3) Заоплняем див подсказки
4) прикручиваем к $(this).mouseover(function(){}) и $(this).mouseout(function() {}) внутри функции получаем див подсказки и делаем show, hide()
В чем такая сложность самому сделать? Быстрее имхо чем искать чужой код=)