Обновление: Время идет и тем самым имеют наши браузеры. Эта техника больше не рекомендуется , и необходимо использовать решение @Dan ниже ( https://stackoverflow.com/a/7557433/5628), если Вы не должны поддерживать IE< 7.
Исходное решение (теперь устаревший):
Это проверит, совершенно видим ли элемент в текущей области просмотра:
function elementInViewport(el) {
var top = el.offsetTop;
var left = el.offsetLeft;
var width = el.offsetWidth;
var height = el.offsetHeight;
while(el.offsetParent) {
el = el.offsetParent;
top += el.offsetTop;
left += el.offsetLeft;
}
return (
top >= window.pageYOffset &&
left >= window.pageXOffset &&
(top + height) <= (window.pageYOffset + window.innerHeight) &&
(left + width) <= (window.pageXOffset + window.innerWidth)
);
}
Вы могли изменить это просто, чтобы определить, видима ли какая-либо часть элемента в области просмотра:
function elementInViewport2(el) {
var top = el.offsetTop;
var left = el.offsetLeft;
var width = el.offsetWidth;
var height = el.offsetHeight;
while(el.offsetParent) {
el = el.offsetParent;
top += el.offsetTop;
left += el.offsetLeft;
}
return (
top < (window.pageYOffset + window.innerHeight) &&
left < (window.pageXOffset + window.innerWidth) &&
(top + height) > window.pageYOffset &&
(left + width) > window.pageXOffset
);
}
Согласно интервью с Крейгом от 2008 года , он в основном написан на Perl.
РЕДАКТИРОВАТЬ: Вы также спросили об остальной части используемого стека технологий там, которая в приведенном выше интервью упоминается как «довольно обычная архитектура LAMP, целая куча систем Linux, Apache, MySQL и Perl, в частности mod_perl». Что касается вашего конкретного упоминания Javascript, Craigslist, похоже, не является сайтом с особенно интенсивным использованием Javascript, но быстрый «просмотр исходного кода» подтвердил, что они действительно используют jQuery .
Из http://www.craigslist.org/about/thanks :
- linux - необходим для Craigslist
- apache - превосходный веб-сервер с открытым исходным кодом
- mySQL - фантастическая база данных SQL с открытым исходным кодом
- perl - практически все программное обеспечение Craigslist написано на perl
- GNU - emacs, gcc, bash и сама концепция свободного программного обеспечения
- openBSD - практически отказоустойчивый
- [...]
(список продолжается)
Да, Craigslist создан для работы с минимальной вычислительной мощностью. Я бы НЕ рекомендовал идти по его стопам.
EDIT
Просто чтобы никто не понял неверно. Я не говорю, что способ создания CL неправильный. На самом деле это довольно гениально. Однако они разработали приложение очень давно, и с тех пор услуги полосы пропускания, обработки и хостинга в целом стали намного дешевле. По сути, я хочу сказать, что писать приложение в такой же манере в наши дни было бы глупо.
Однако я очень люблю CL. Я нашел немало клиентов через этот сайт. :)
Я бы НЕ рекомендовал идти по его стопам.EDIT
Просто чтобы никто не понял неверно. Я не говорю, что способ создания CL неправильный. На самом деле это довольно гениально. Однако они разработали приложение очень давно, и с тех пор услуги полосы пропускания, обработки и хостинга в целом стали намного дешевле. По сути, я хочу сказать, что писать приложение в такой же манере в наши дни было бы глупо.
Однако я очень люблю CL. Я нашел немало клиентов через этот сайт. :)
Я бы НЕ рекомендовал идти по его стопам.EDIT
Просто чтобы никто не понял неверно. Я не говорю, что способ создания CL неправильный. На самом деле это довольно гениально. Однако они разработали приложение очень давно, и с тех пор услуги полосы пропускания, обработки и хостинга в целом стали намного дешевле. По сути, я хочу сказать, что писать приложение в такой же манере в наши дни было бы глупо.
Однако я очень люблю CL. Я нашел немало клиентов через этот сайт. :)
услуги обработки и хостинга в целом стали намного дешевле. По сути, я хочу сказать, что писать приложение в такой же манере в наши дни было бы глупо.Однако я очень люблю CL. Я нашел немало клиентов через этот сайт. :)
услуги обработки и хостинга в целом стали намного дешевле. По сути, я хочу сказать, что писать приложение в такой же манере в наши дни было бы глупо.Однако я очень люблю CL. Я нашел немало клиентов через этот сайт. :)