Обновить
5
Сергей@gearss

Пользователь

1
Подписчики
Отправить сообщение
[irony] Это, конечно же, заговор [/irony]
Печально. То, что в США принято считать нормальным обслуживанием (support), для нас выглядит как чудо.
Есть куда расти и есть чему учиться «нам» у «них».

Кстати, шустрый ответ в 3 часа ночи по времени США — вполне нормальное явление.
По той причине, что борльшинство хостеров аутсорсят саппорт в Индию, и разговаривали вы, скорее всего, с индусом.
спасибо за развёрнутый ответ.
вообще, на селекторах свет клином не сошёлся. по собственному опыту скажу, что в большом проекте использую CSS селекторы (на яваскрипте) всего в 2-3 местах, из 100К+ кода.

самое важное — конечное приложение, а детали реализации не имеют значения.
т.е. сначало лучше сделать что-то полезное, а когда этим начнут пользоваться реально, тогда уже заботиться об оптимизации.
Суть задачи: есть N элементов, надо отфильтровать, оставив уникальные.
Если, по вашему, не расширять DOM элементы новыми атрибутами, и учесть, что не у всех элементов есть идентификатор, то задача решается в O(n^2)
Я это имел ввиду.

Про «мой фреймворк» и «патчи» не понял.
Обеспечить уникальность DOM элементов, не расширяя их (expandos), сложно.
Добавить к DOM элементу новое свойство считаю небольшим злом.

Если вас беспокоит, что в будущем появится подобный атрибут — не парьтесь, назовите его хитрозаумно.
Могу предложить оптимизацию на уровне «Уникальность элементов».
for (child in children) {
	if (children[child].yeasss != uid) {
		if (last) {
			children[child].yeasss = uid;
		}
		newNodes = children[child];
	}
}


Пояснения:
uid — обычный счётчик, увеличивается на 1 при обработке нового селектора.
В данном случае сброс флага ".yeasss" не понадобится, что уменьшает количество обращений к DOM-дереву, и, в конечном итоге, увеличивает производительность.
При рабзработке серъёзных приложений приходится использовать QA, например, юнит-тестирование или аудит кода.
Поэтому проблемы возникать не должны при правильном подходе.

А всяческие языковые «вкусности» помогают рарабатывать быстрее.
Каждый язык программирования имеет свою нишу применения. А те, что потеряли свою нишу, тихо умирают.
если прочесть вслух, получается «пинг, я — рут»
Использовал похожий загрузчик в одном из разработанных проектов (1й метод из приведённых).
Страничка логина появлялась на экране сразу, что позволяло вводить username/password, пока грузятся компоненты (JS и CSS файлы).
Загрузка происходила за несколько секунд (подключались тяжеловесные компоненты: ExtJS, Google Maps, etc), этого времени как раз хватало, чтобы ввести пароль.

Результат подобного подхода налицо — мгновенная доступность сервиса для пользователя.
Время загрузки первой HTML странички минимально. Можно интегрировать стили в неё же (так делает Google, например).

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

Вывод: метод замечательный, но используем там, где необходимо (руководствуемся здравым смыслом).
Почему вы так уверены что автору топика Microsoft не платит?
В профиле написано, что он там работает.
Плин, я только сейчас понял что иконка гугла — это белая «g» на цветном фоне.
До этого видел какой-то непонятный цветочек на белом фоне.

Всё зависит от того, с какой стороны смотришь, вот.
Давно ждал Firebug для IE.
Но, с первого взгляда на скриншоты видно, что накосячили.

Например, посмотрите на HTML закладку Developer Tools. В правой панели наследуемые стили CSS, причём, как видно из скриншота, в порядке наследования DOM — сначала тэг body, далее div, видимо, где-то в хвосте искомый select.
Порядок следования просто необходимо изменить на обратный. Иначе придётся скроллить каждый раз.

Из таких мелочей складывается впечатление о продукте. Чтобы им (Developer Tools) удобно было пользоваться, необходимо позаботиться о деталях.
К слову, девелоперская консоль в Google Chrome тоже крайне неудобна во многих отношениях.

Firebug до сих пор остаётся незаменимым инструментом в web-разработке, для тех кто занимается этим серьёзно.
Хм, действительно, странно.
(пошёл читать документацию и разбираться в своём коде)
Понял, что вы имели ввиду.
Зато можно сделать вот так:

var Request = function(url, method) {
  var req = new XMLHttpRequest();
  return req;
};
Request.prototype = {
  method1: function() {},
  method2: function() {}
};
var test = new Request('page.php');


Т.е. кроме того, что расширять стандартный класс своими методами, можно ещё и реализовать множественное наследование.
В примере выше:

var test = new Request('page.php');
test.send(); // вызов метода встроенного класса XMLHttpRequest
test.customMethod(); // вызов своего метода


Без return в конструкторе наследование от встроенного класса не получится.
Свойство A присутствует, B — отсутствует.
Т.е. свойства через прототип добавить можно, а индивидуальные нельзя.
Возможно, это имел ввиду автор статьи
test = 'test'
String.prototype.A = 12
test.B = 45
console.log(test.A, test.B)
Заметил ещё одну интересную особьенность конструкторов Яваскрипта, о которой, возможно, не всем известно.

Объект можно наследовать от «стандартных» классов, таких как DOMElement и XMLHttpRequest.
Для этого нужно вернуть из конструктора экземпляр «стандартного» объекта.

Пример 1:
var Element = function(tag, html, className, parent) {
  var e = document.createElement(tag || 'div');
  e.innerHTML = html;
  e.className = className;
  (parent || document.body).appendChild(e);
  e.customMethod = function() { /*...*/ };
  return e;
};
var test = new Element('span', 'Test', 'warning');


Пример 2:
var Request = function(url, method) {
  var req = new XMLHttpRequest();
  req.open(method || 'GET', url, true);
  /* other initialization */
  req.customMethod = function() { /*...*/ };
  return req;
};
var test = new Request('page.php');


Варианты использования ограничиваются только вашим воображением.
Например, я использую класс (наследник от XMLHttpRequest) который генерирует ошибку по таймауту (т.е. если запрос не был завершён в течение 10 секунд).
Извините, ошибся.
У них просто 5 скриншотов в разных браузерах.

Просто раньше сталкивался с сайтами, где в разделе «Скриншоты», дизайн был обрамлён в рамку браузера, из которого смотришь.
Т.е. если зашёл с Мака, то будешь видеть скрины как бы из под Сафари, и т.д.
Там хитро — скриншоты показываются в оболочке того браузера, под которым вы зашли.

Т.е. вы пользуетесь Сафари — вам и скриншот с ним, я же увидел в обрамлении Файерфокс.
Мне кажется это модная тенденция — уже не на первом сайте вижу.

Информация

В рейтинге
Не участвует
Откуда
Курск, Курская обл., Россия
Дата рождения
Зарегистрирован
Активность