happy designer 20080329

Post on 08-May-2015

2.869 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

gugod's talk about SPA, JavaScript::Writer and pQuery. In HappyDesigner meetup 2008/03/29.

TRANSCRIPT

SPAJavaScript::Writer

pQuery

My Name IsGUGOD

My Name IsGUGOD

•Coffee-maniac•日本語を勉強•Hacker•JavaScript•Perl, Ruby

Emacs

SPA

Single Page Application

http://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/HTTP_persistent_connection.svg

web

+ajax

telnet

cometd

SPA EXAMPLE

gmailgoogle map

SPA : how

iframe

ajax

href=”/go/there”

<a

>

href=”/go/there”

<a

>

onclick=”#{ajax}”

<a

>

action=”/that/one”

<form

>

action=”/that/one”

<form

>

onsubmit=”#{ajax}”

<form

>

大きい相違Biggest difference

document.body 恆久遠

global variable永流傳

session storage(fake)

Performance

/page/simple

•HTML

/page/simple

•HTML•JavaScript

/page/simple

•HTML•JavaScript•Compile JavaScript

/page/simple

•HTML•JavaScript•Compile JavaScript•Run JavaScript

/page/simple

/page/simpleHTML: 1K

JavaScript: 1KCompile: 100ms

Run: 20ms

/page/simpleHTML: 1K

JavaScript: 1KCompile: 100ms

Run: 20ms

/page/complexHTML: 2K

JavaScript: 2KCompile: 200ms

Run: 80ms

/page/simpleHTML: 1K

JavaScript: 1KCompile: 100ms

Run: 20ms

/page/complexHTML: 2K

JavaScript: 2KCompile: 200ms

Run: 80ms

/page/simpleHTML: 1K

JavaScript: 1KCompile: 100ms

Run: 20ms

/page/simpleHTML: 1K

JavaScript: 1KCompile: 100ms

Run: 20ms

/page/complexHTML: 2K

JavaScript: 2KCompile: 200ms

Run: 80ms

/page/simpleHTML: 1K

JavaScript: 1KCompile: 100ms

Run: 20ms

Total:HTML: 4KJavaScript: 4KCompile: 400msRun: 120ms

/page/simpleHTML: 1K

JavaScript: 2KCompile: 200ms

Run: 20ms

/page/simpleHTML: 1K

JavaScript: 2KCompile: 200ms

Run: 20ms

/page/complexHTML: 2K

JavaScript: 0KCompile: 0ms

Run: 80ms

/page/simpleHTML: 1K

JavaScript: 2KCompile: 200ms

Run: 20ms

/page/complexHTML: 2K

JavaScript: 0KCompile: 0ms

Run: 80ms

/page/simpleHTML: 1K

JavaScript: 0KCompile: 0ms

Run: 20ms

/page/simpleHTML: 1K

JavaScript: 2KCompile: 200ms

Run: 20ms

/page/complexHTML: 2K

JavaScript: 0KCompile: 0ms

Run: 80ms

/page/simpleHTML: 1K

JavaScript: 0KCompile: 0ms

Run: 20ms

Total:HTML: 4KJavaScript: 4KCompile: 200msRun: 120ms

Total:HTML: 4KJavaScript: 4KCompile: 400msRun: 120ms

Total:HTML: 4KJavaScript: 4KCompile: 200msRun: 120ms

SPANormal

Total:HTML: 4KJavaScript: 4KCompile: 400msRun: 120ms

Total:HTML: 4KJavaScript: 4KCompile: 200msRun: 120ms

SPANormal

PreloadAll Code

慢一次配合 “never expire” 處方服用,效果尤佳

Jifty::Plugin::SinglePage

JavaScript::Writer

JavaScript code generation from Perl.

js->alert(42);

js("Widget.Lightbox") ->show("Nihao");

js("3s")->latter( sub { js->alert(42); });

Why ?

Perl

We

JavaScript is

HARD

sleep()

asynchronous execution context

function can returnbefore it finished

Browser Sucks

pQuery

jQuery ported to Perl

use pQuery;

pQuery("http://google.com/search?q=pquery") ->find("h2") ->each(sub { my $i = shift; print $i + 1, ") ", pQuery($_)->text, "\n"; });

PQUERY(map "http://search.cpan.org/~$_/", qw(ingy gugod miyagawa)) ->find("table")->eq(1)->find("tr") ->EACH(sub{ printf("%40s - %s Perl distributions\n", $_->url, $_->length - 1) });

Query Multiple DOM All At Once

http://search.cpan.org/~ingy/ - 88 Perl distributions http://search.cpan.org/~gugod/ - 87 Perl distributions http://search.cpan.org/~miyagawa/ - 138 Perl distributions

Why

Perl

We

jQuery

We

JavaScript VMsSucks

Cross-Site ScriptingFileDB

The power of jQueryshould be released

謝謝

top related