ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: embedded javascript


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: embedded javascript
  • From: Peter Leonov <gojpeg@xxxxxxxxx>
  • Date: Tue, 9 Feb 2010 17:03:59 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:content-type:mime-version :subject:from:in-reply-to:date:content-transfer-encoding:message-id :references:to:x-mailer; bh=/rSvo09ACAJ+92buVY9iPtIlztKXPhDNk7qw0u8Bf2A=; b=MdYhsDlAThBE7aImkLy31av7upOdOmWfqGbesQn39smvjH5CLXPxhTifG8tLNJGccm ymg6S9immvQltQmXlkY39thMh0woYzPi1aae5YJxL0sn70qw0Lm1TB5EqEsujcyE27y0 if7Qvug+Yo+IDPwXeulphjhBIXsWUSUVFyg1I=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=content-type:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to:x-mailer; b=TzPtofqH2aVeoapv4dF7sQrcH2JjI5BzpL85JhKvy2sZtVN9mM0U6JOBvuSybN8Ru7 30Aa24/DLeikf8xSHEx0QeFxEjMyoID1aOUfn+1Xf0gtUBBS1WzvYqi4lFNQvYzxvlu2 qW76QOv8O72ykU5Oyo/CijA73TdzVjbIbRWOU=
  • In-reply-to: <20100209110636.GB16810@xxxxxxxxxxxxx>
  • References: <20100209110636.GB16810@xxxxxxxxxxxxx>

On 09.02.2010, at 14:06, Igor Sysoev wrote:

> Я сейчас изучаю v8 на предмет встраивания в nginx
Ура!!! :)

Тока у v8 есть один неприятный недостаток: он не умеет предупреждать, когда 
освобождает память под объектом. То есть надежные деструкторы там пока сделать 
нельзя (есть, правда извороты, но они недокументированные). В принципе, это 
ничем не грозит, если не будет ситуаций, когда яваскрипт просит энжинкс 
?попредержать? освобождение запроса.

> и у меня возник вопрос
> по поводу интерфейса - как лучше связать запрос с javascript'ом:
> 
> 1) сделать предопределённый объект request, по аналогии с браузерными window
>   и document.
> 2) или передавать его первым параметром функции, как в перле и в одной
>   из реализаций nginx/v8:
>   function handler(request)
>       http://code.google.com/p/ngxv8/source/browse/trunk/examples/simple.js

ИМХО, второй.

Если использовать первый вариант, то в разные моменты времени глобальная 
переменная будет указывать на разные запросы. Ее придется выставлять, когда 
пришел таймер. А иногда она будет вообще пустой или указывать на отработавший 
запрос. И в любом случае ее придется пересохранять, чтобы запомнить в 
замыкание. А что будет, если вернутся треды? ;)

Первый способ легко построить на основе второго практически бесплатно, а вот 
наоборот будет сложнее (учитывая глобальные и запросовые таймеры, колбеки 
подзапросов и приема тела).

А еще глобальные переменные по определению медленнее параметра функции ;)

> Какой из этих способов можно также реализовать в TraceMonkey ?
Любой.

Собственно, вот все мои мысли касательно связки нативный запрос + яваскриптовая 
обвязка.
http://kung-fu-tzu.ru/posts/2009/12/03/nginx-spidermonkey-memory-management/

> 
> 
> -- 
> Игорь Сысоев
> http://sysoev.ru

С уважением,
Петр Леонов.
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.