$(function(){ // "Упаковываем" - вызываем после загрузки страницы
$(window).scroll(function(){ // Привязываем событие к скроллу окна
var scrolled = $(window).scrollTop(); // Узнаем величину, на которую ушел скролл
if (scrolled > 200) $('.go-top').fadeIn('slow'); // Если эта величина больше 200px - показываем кнопку
if (scrolled < 200) $('.go-top').fadeOut('slow'); // Если эта величина меньше 200px - убираем кнопку
});
$('.go-top').click(function () { // "Вешаем" событие на клик кнопки
$("html, body").animate({ scrollTop: "0" },200); // "Мотаем" в начало страницы
});
});
// функция, которая выполнится по событию DOMReady
$(function(){
// обработчик события 'scroll' у объекта window, проще говоря - при скролле страницы
$(window).scroll(function(){
// смещение относительно начала (верха) страницы. по идее в пикселях
var scrolled = $(window).scrollTop();
// $('.go-top') - выбрать элементы с классом go-top, .fadeIn('slow') - показать их, медленно
if (scrolled > 200) $('.go-top').fadeIn('slow');
if (scrolled < 200) $('.go-top').fadeOut('slow'); // либо скрыть, соответственно
});
// обработчик события 'click' у объектов с классом go-top
$('.go-top').click(function () {
// Никогда не понимал зачем оба селектора, выбирает элементы html и body
// Выставляет им свойство scrollTop в 0, то есть в начало (верх) страницы с временем выполнения 200мс
$("html, body").animate({ scrollTop: "0" },200);
});
});
Если коротко, то ошибка закралась вот тут:
В асинхронном сервере в единый момент времени обрабатывается столько запросов, сколько есть воркеров
Представьте себе, что у вас на сервер приходит запрос, связанный с выборкой данных из БД.
Он отрабатывает, предположим, за 150 мс, из которых 130 это работа с базой данных.
В случае с PHP у вас воркер будет заблокирован эти 150 мс для обработки других запросов.
В случае с асинхронным сервером, он, пока запрос 1 ждет данные от БД в течение 130 мс, сможет принять и начать обрабатывать другие запросы. Предположим, что у нас один PHP-воркер. В этом случае таких запросов, как из примера, он сможет обработать семь штук за секунду.
Асинхронному же, допустим, прилетят 20 запросов. Он обработает каждый до взаимодействия с БД, допустим за 10 мс, полетят 20 запросов к БД, пройдут, допустим, за 500 мс, и сервер сформирует ответ. И это все практически параллельно. Итого меньше чем за секунду мы таким образом обработаем 20 запросов.
Можно, конечно, увеличить пул FastCGI, но оверхед при обработке запроса каждым воркером будет несоизмеримо выше, чем при обработке асинхронным сервером.
#!/usr/bin/env node
require('child_process').exec('name &', function (err) {
if (err) {
console.log('Can\'t start child process.');
process.exit(1);
}
console.log('Child process is started.');
});