Наткнулся на
замечательную статью про то как в JavaScript можно создавать приватные методы и свойства для объектов. Никогда не задумывался над этим под таким углом, но вещь несомненно очень интересная.
Eclipse всем хорош, но иногда нужно что-то, что не требовательно к ресурсам, написанное не на на яве на на чем нибудь более вменяемом. Поэтому я давно ищу такое решение - самый лучший вариант для разработчика (написанный на Си/Си++) это конечно HomeSite - для меня во всяком случае. Однако он стоит денег, хотя и не слишком больших.
Сегодня наткнулся на интересный редактор Scintilla Text Editor - http://www.scintilla.org. Из достоинств мне понравилось наличие поддержки огромного количества языков, опенсорс/GTK+, есть версии под Windows, MacOS, Linux , есть вкладки, вобщем замечательная штука. Не хватает наличия файлового дерева, но это уже моя привередливость, думаю вполне можно обойтись виндовым эксплорером при желании, ведь для чего-то он нужен на компьютере...
Сегодня клиенты пожаловались что если что нибудь на странице не загрузилось то не работатет часть JavaScript'овского функционала - конкретно у них не сработала загрузка видео с ютуба - чето последнее время у них не быстро там все работает. Просто основная логика на странице подключается с использованием события onLoad - в принципе штука не обязательная в человечьих браузерах, но вот в Эксплорере при попытки поменять что либо до этого события возникает очень плохая ошибка.
Беда в том что onLoad возникает когда все изображения и все связные документы подгружены и если например одно из изображения подгружается с другого сервера, который умер, то ждать этого события придется довольно долго иногда несколько минут, и были случаи что событие так и не наступало...
Оказывается вносить изменения в объектную модель браузера можно и до возникновения события onLoad, т.е. когда не все изображения еще подгружены
ниже привожу функцию для отслеживания момента когда в браузере становится возможным вносить изменения в объектную модель документа. Идея позаимствована из JQuery
/**
* faster way to load content in browser idea taken frin JQuery
* this allows do not wait until data will be completely loaded
* seems only opera can allow load faster using this function -
* though in JQuery they say it's supported...
*/
//alert(document.addEventListener);
function bindReady(){
if ( bindReady.readyBound ) return;
bindReady.readyBound = true;
if (document.addEventListener){
document.addEventListener( "DOMContentLoaded", bindReady.ready, false );
}
// Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
// If IE is used and is not in a frame
// Continually check to see if the document is ready
if ( Object.isIE && window == top ) (function(){
if (bindReady.isReady) return;
try {
// If IE is used, use the trick by Diego Perini
// http://javascript.nwbox.com/IEContentLoaded/
document.documentElement.doScroll("left");
} catch( error ) {
setTimeout( arguments.callee, 0 );
return;
}
// and execute any waiting functions
bindReady.ready();
})();
if ( Object.isSafari || Object.isOpera ) {
var numStyles;
(function(){
if (bindReady.isReady) return;
if ( document.readyState != "loaded" && document.readyState != "complete" ) {
setTimeout( arguments.callee, 0 );
return;
}
bindReady.ready();
})();
}
}
bindReady.readyBound = false;
bindReady.isReady = false;
bindReady.ready = function(){
bindReady.isReady = true;
var i;
for (i=0;i
Тестировал в IE6/IE7, Safari, Opera, FF. Не нравится только как работает в Опере - там скрипт срабатывает позже onLoad, в остальных браузерах гораздо раньше
Оставить комментарий
1. Побольше используйте стилей с именами style1, style2, style3... и не нужно проверять существуют ли такие стили в каскадной таблице -
результат может оказаться даже лучше чем вы его представляли - так оно даже интересней. Человеческие имена стилей - удел ламеров и
юзеров, нормальные пацаны с компьютером на ты и всегда могут отличить стиль style13 от style12.
Побольше стилей с такими именами!
2. Почаще используйте функции создаваемые дримвювером типа - MM_validateForm это очень хорошие функции, не беда что
слишком избыточные и громоздкие, ведь для чего-то они нужны правда?
3. Побольше вложенных таблиц! Это просто праздник когда много таблиц вложены одна в другую! Не беда что в большинстве случаев можно
обойтись вообще без них, давайте таблиц и побольше!
4. Одиночные теги закрывать не нужно, что мы не знаем что они одиночные что ли...
5. Стили Вайтсмита и Кернигана-Ричи - отстой, будем использовать все сразу и отступы делать как придется - тот кто будет после нас
переделывать переформатирует так как ему нравится если такой дотошный...
Встала задача сделать небольшой такой чат для сайта - обнаружилась аба-а-а-а-лденная штука, называется
OpenFire сервер для работы со службами мгновенных сообщений. В отличие от других аналогичных решений на моей машине развернулся в два счета. Написан на джаве, на том же сайте нашел исходники для Flash некоего тулкита для создания своих решения на ActionScript, что-то в структуре файлов мне показалось знакомым. И тут то я пережил культурный шок - оказывается можно создавать флешки на еклипсе без всяких там дополнительных приложиний от Макромедии. Как?
здесь подробное описание как скачать и настроить Eclipse и создать Hello World приложение...