PyJS intro

demixcn 2,246 views 36 slides Sep 18, 2011
Slide 1
Slide 1 of 36
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36

About This Presentation

PyJS is a CommonJS Based Javascript Framework runs on Browser


Slide Content

PyJs [email protected] Monday, September 19, 11

A CommonJS Based
Javascript Framework
runs on Browser
https://github.com/demix/pyjs Monday, September 19, 11

CommonJS Monday, September 19, 11

Math.js
increment.js
program.js(main)
Monday, September 19, 11

Benifits Monday, September 19, 11

One code , runs everywhere
No need to study and follow an ugly module
pattern
Automatic namespace
Monday, September 19, 11

Browser
Server
Desktop
Command line tools
...
Monday, September 19, 11

One code , runs everywhere
No need to study and follow an ugly module
pattern
Automatic namespace
Monday, September 19, 11

Traditional Module Pattern
CommonJS Module
Monday, September 19, 11

One code , runs everywhere
No need to study and follow an ugly module
pattern
Automatic namespace
Monday, September 19, 11

Monday, September 19, 11

Server side Example:
NodeJS
Browser side Example:
Firefox jetpack
projectExamples
Monday, September 19, 11

Problem Monday, September 19, 11

Run directly after ‘require’.
No Callback.
Monday, September 19, 11

Means in Browser, we can only use
“Synchronous”
request to get the script file.
Monday, September 19, 11

What’s the fxxk...
Monday, September 19, 11

SeaJS Monday, September 19, 11

Monday, September 19, 11

User pre-defined template wrapper.
Prefetch Js file which has been required.How it works
Monday, September 19, 11

Problems Still ugly template.
Still can’t download all files in parallel
Monday, September 19, 11

PyJS Monday, September 19, 11

Grammar Monday, September 19, 11

99% same as CommonJS API
No ugly user pre-defined template wrapper
Monday, September 19, 11

what about the file
loading problem?
You haven’t
mentioned it ..
Monday, September 19, 11

There is two loading rules in PyJS.
One in local debugging,
the other in online building.
All need Python environment.
Monday, September 19, 11

python pyjs.py runserver
Fetch the JS file in synchronous XHR request.
Server will parse the module file automaticlyLocal debugging
Monday, September 19, 11

Server parse Monday, September 19, 11

Online building python pyjs.py
Automaticly generate a ‘boot.js’ file, find all the
dependences in modules and add the
information to the end of boot.js file.
Monday, September 19, 11

Then , if we had a combo service like:
Monday, September 19, 11

We can download the
file just in one
request!
Monday, September 19, 11

Finally , because of the require function used on
page has a callback, it can runs after all the files
is received and finish excuting.
Monday, September 19, 11

That’s all. Monday, September 19, 11

More.. Monday, September 19, 11

Because we use
python... Local transmission
Local plugins
Deal with CSS files.
...
Monday, September 19, 11

demix
Front-end engineer @ Baidu co.
email: [email protected]
weibo/twitter: @demix
Homepage: http://demix.github.com/
blog: http://www.cnblogs.com/demix
Monday, September 19, 11

Thank You. Monday, September 19, 11