если посмотреть диспетчер задач, в нем будет видна куча процессов браузера, по одному на вкладку. Этот подход в свое время был внедрен Хромом чтобы избежать блокировок и подвисаний на разных вкладках (тогда только появились многовкладочные браузеры
(
Read more... )
Comments 20
разве кто по 20 вкладок открывает но мне кажется таких людей не очень много..
Reply
Reply
Reply
Reply
Reply
"кооперативная многозадачность", крайне популярная в 80-е годы прошлого века, когда процессоры хреново умели переключать контексты.
Кроме того, борьба с cros-site-scripting attacks в асинхронном браузере, у которого разные вкладки выполняются в одном процессе (и даже в одной нити), а значит в общем пространстве памяти, и средствами системы ее никак не поделить, это еще то развлечение.
Решаемо, конечно, например путем написания интерпретатора джаваскрипт на эрланге. Но гемморойно...
Reply
Reply
А у браузера исполняемый им код - заведомо враждебный его пользователю и квалификация у этого пользователя может быть никакой.
Reply
По вашему, единственное что ограждает сессии пользователей в nginx друг от друга - это злобный сисадмин, неустанно проверяющий в дебаггере что они там делают?
Reply
Reply
Дык проблема апача в том что когда скрипт уже закончил свою работу, он не может освободить память ибо данные отдаются клиенту по медленному протоколу. А одновременное исполнение кучи разных скриптов на самом сервере на самом деле и не нужно. Достаточно не запускать скрипты пока все данные не получены и прибить их сразу после того как ответ сформирован. Т.е. nginx эффективно решает задачу back-proxy server.
У клиенского браузера задача-то другая: крутить кучу разных javascript'ов уже после того как страничка принята. "Разных" это весьма важно, ибо тут и подход fastcgi не применить.
Не, тут эти решения не сработают.
Замечу что nginx и fastcgi не написаны на rust.
Rust это о другом, и он вполне может дать существенный бонус.
Reply
Как кручение разных javascript в браузере отличается от кручения разных javascript в node.js ?
"Замечу что nginx и fastcgi не написаны на rust.
Rust это о другом"
не было тогда руста. Сейчас неэффективно писать сложный асинхронный код браузера на С++ , когда есть Rust
Reply
-Как кручение разных javascript в браузере отличается от кручения разных javascript в node.js ?
На сервере набор скриптов конечен и их можно крутить в одном процессе, не выгружая все данные, не отключаясь от БД, и т.п. Т.е. ровно то что обеспечивает подходу fast-cgi повышенное быстродействие: наследование общих данных от одной итерации скрипта к другой.
За набором скриптов следит программер и он может гарантировать что вредоносных скриптов там нет, и потому передовать среду можно относительно безопасно.
У клиента на каждой страничке принципиально разный набор скриптов, так что тут быстродействие не поднять, плюс тут как раз скрипты могут быть вредоносные, так что наследовать среду И бессмысленно И нельзя.
Reply
Reply
Leave a comment