Spiga

上周末Jscex项目介绍的幻灯片

2011-05-16 14:06 by Jeffrey Zhao, 9800 visits, 收藏, 编辑

上周末,在风景秀丽的浙江大学校园内,举行了NodeParty杭州站的活动。我在活动上结合Node.js项目对Jscex进行了简单介绍,包括其设计目的,设计原则,使用方式,高级模式,组成部分等等。在场的许多朋友也提出了不少问题,我也一一作了解答或是演示。总体感觉还算不错,毕竟是亲手编写的项目,对其各方面还是了然于胸的。在此发布演讲用的幻灯片,希望能给不在现场的同学带来一些帮助。

为了便于在国外社区推广,我也制作了英文版的幻灯片(事实上这是“原版”,中文版反而是会前临时决定翻译过来的),在此一并献上:

欢迎您使用Jscex,遇到什么问题也请及时与我联系。

原文地址:http://blog.zhaojie.me/2011/05/jscex-write-sexy-javascript-slide.html

Add your comment

29 条回复

  1. #1楼 邀月      2011-05-16 14:11
    是紫金港校区吗?可惜我不知道。
     回复 引用 查看   
  2. #2楼 C#.NET通用权限管理系统组件      2011-05-16 14:15
    支持一下,要是能知道就好了,看看老赵的演讲了,可惜了不是。
     回复 引用 查看   
  3. #3楼 Mainz      2011-05-16 15:14
    没用过,支持下!
     回复 引用 查看   
  4. #4楼 IT鸟      2011-05-16 15:53
    先占位.
     回复 引用 查看   
  5. #5楼 王军涛      2011-05-16 16:30
    支持一个,还没明白具体干什么的。
     回复 引用 查看   
  6. #6楼 司徒正美      2011-05-16 16:34
    没用过,支持下!
     回复 引用 查看   
  7. #7楼 LANG@      2011-05-16 16:35
    老赵真人年轻好多啊><
     回复 引用 查看   
  8. #8楼[楼主] Jeffrey Zhao      2011-05-16 16:40
    引用王军涛:支持一个,还没明白具体干什么的。

    看了以后明白了吗?
     回复 引用 查看   
  9. #9楼[楼主] Jeffrey Zhao      2011-05-16 16:40
    引用邀月:是紫金港校区吗?可惜我不知道。

    玉泉校区呢。
     回复 引用 查看   
  10. #10楼 wuzy      2011-05-16 20:47
    这个ppt是用来什么工具做的吗
     回复 引用 查看   
  11. #11楼 民工精髓      2011-05-16 22:16
    这取的啥名,搞得在公司里被屏蔽了。。。
     回复 引用 查看   
  12. #12楼[楼主] Jeffrey Zhao      2011-05-16 22:34
    @民工精髓
    你们这公司是屏蔽哪些东西?
     回复 引用 查看   
  13. #13楼 疯子阿飞      2011-05-17 00:40
    引用Jeffrey Zhao:
    @民工精髓
    你们这公司是屏蔽哪些东西?

    because of "sexy" in
    "jscex-write-sexy-javascript-slide"

    I guess.


    没有细看,不过似乎是用来实现代码的异步执行的。
    异步的作用总的来说是浏览器在执行某些需要时间比较久的任务时能够让用户同时做其他事情,或者,至少有一个良好的用户体验,不要像死机了一样。

    但是作为JavaScript本身来说,似乎是并不支持多线程的,老赵能否简洁讲解下核心的异步是如何实现的?

    我曾经尝试让浏览器执行一个128位的RSA加密,尝试了setTimeout, 和在其他iframe中加载等等一系列的方法,也没能实现“异步”的效果,setTimeout以后,代码确实不用挂起,能继续执行其他代码,但是加密的代码运行时,整个浏览器依然产生了短暂假死的现象。

    看来setTimeout或者setInterval等等方法只是将不需要立即生效的任务延迟执行而已,并没有“神奇”的事情发生。

    而通过拆解任务,分成多个步骤来执行,又太复杂.
    老赵这里的await是否就是要把这个"复杂"的拆解过程变得简单化, 想来确实是个很不错的东西.

    一般如果没有这个东西的话,我们会需要改变自己的代码结构,本来一个函数一个循环做的事情,可能需要做成每次只执行一定数量,然后setTimeout再调用一次,知道某个任务队列清空了为止.

    而现在有了这个Jscex, 我们可以在渲染表格从10行变成2000行的时候不用修改代码结构,只需要在for循环里加一条await语句即可. 当然如果想要更好的视觉效果, 可以加一个loading动画显示.

    老赵, 上面说的有很多臆测成分, 若有差错还望见谅并指正.
     回复 引用 查看   
  14. #14楼[楼主] Jeffrey Zhao      2011-05-17 00:53
    引用@疯子阿飞
    而现在有了这个Jscex, 我们可以在渲染表格从10行变成2000行的时候不用修改代码结构,只需要在for循环里加一条await语句即可. 当然如果想要更好的视觉效果, 可以加一个loading动画显示.

    说的基本没错,的确可以用来这么做。
    Jscex避免代码因为一些异步操作,比如setTimeout之类的而改变结构。
    其原理简单来说,就是自动帮你生成符合目标的代码。程序员写线性的带$await的代码,Jscex自动生成用回调啊什么什么组成的异步代码。
     回复 引用 查看   
  15. #15楼 冥祭      2011-05-17 07:16
    呵呵, 还没学 JavaScript 呢, 看着有点蒙!
    老赵, 能不能凭着你多年的经验, 介绍本经典的入门级的 JavaScript 的书给我看一下呢?
     回复 引用 查看   
  16. #16楼[楼主] Jeffrey Zhao      2011-05-17 09:43
    @冥祭
    周爱民的JavaScript语言精粹与编程实战。
     回复 引用 查看   
  17. #17楼 testzhangsan      2011-05-17 11:21
    从PPT中看到“痛恨Java语言”,可以看出老赵很幼稚。每个人有表达自己观点的权利,但在公共场合,就要避免这样了。你做为一个大牛,要时时刻刻注意自己的言行,不要误导你的粉丝,有可能你的粉丝是一个Java爱好者。胡主席能在任何场合说自己讨厌美国吗?
     回复 引用 查看   
  18. #18楼 i surrender      2011-05-17 11:59
    @testzhangsan
    是的呀 这个人太自以为事 你有什么了不起的姓赵呢 你不要以为没有了你 地球就不转了 这个世界谁都能离开谁 你这个人思想有问题 去想想你以后怎么做人 在怎么做技术
     回复 引用 查看   
  19. #19楼 人生如梦      2011-05-17 14:10
    @ i surrender
    老赵虽然没有什么了不起的,但至少是一个乐于分享,也是一个很有思想,真性情的人,坦率的表达自己的想法,总比那些伪道学和虚伪的人好的多吧,特别是那些想法是建立在自己的实践和个人的分析上,总比你这种无中生有的个人攻击要靠谱,仔细看看老赵以前发表的那些文章再发表评论吧。
     回复 引用 查看   
  20. #20楼[楼主] Jeffrey Zhao      2011-05-17 14:18
    @testzhangsan
    我很注意,倒是你不注意么,我误导Java用户了吗?最多是棒喝,嗯嗯。
    我说我痛恨Java语言,是我一贯的观点,我每次都会顺便强调痛恨的是语言,不是类库和平台。
    谁觉得不满,出来好好讨论就是,反而你这么说很令人蛋疼,嘿嘿。
     回复 引用 查看   
  21. #21楼[楼主] Jeffrey Zhao      2011-05-17 16:30
    @i surrender
    呵呵,我痛恨个Java怎么看出我自以为是了呀?我还不能讨厌一个东西了吗?
     回复 引用 查看   
  22. #22楼 冥祭      2011-05-17 17:40
    @Jeffrey Zhao
    恩, 谢谢老赵哈!
     回复 引用 查看   
  23. #23楼 風林      2011-05-20 21:45
    引用testzhangsan:
    从PPT中看到“痛恨Java语言”,可以看出老赵很幼稚。每个人有表达自己观点的权利,但在公共场合,就要避免这样了。你做为一个大牛,要时时刻刻注意自己的言行,不要误导你的粉丝,有可能你的粉丝是一个Java爱好者。胡主席能在任何场合说自己讨厌美国吗?

    沒想到大牛不能公開發表他痛恨的語言,連誤導粉絲這個話都出來了,身為一個程式人員應該要有獨立思考的能力吧,只會盲目跟從而不去做驗證的粉絲,我想他的程式生涯走的也有限吧,至於Java的好與壞,可以在技術上做理性的討論。你不從技術上切入,卻用莫名其妙的道德主義去攻擊大牛,不會顯得自已比較高深啊。如果這樣攻擊大牛可以達成你的優越感,我可以提供你幾招連續技啦~請看:

    1.身為大牛需要遵守交通規則,做好粉絲的榜樣。
    2.身為大牛需要維持好體重三圍,避免與粉絲合拍時擠壓到粉絲的畫面。
    3.身為大牛每到夕陽時分時,便要朝向夕陽賣力狂奔,讓粉絲們感受到你對技術滿滿的熱愛,一直跑、一直跑,直到粉絲們春心蕩漾為止……



    呃~~
    我承認我很無聊……
     回复 引用 查看   
  24. #24楼 testzhangsan      2011-05-21 14:21
    引用風林:
    引用testzhangsan:
    从PPT中看到“痛恨Java语言”,可以看出老赵很幼稚。每个人有表达自己观点的权利,但在公共场合,就要避免这样了。你做为一个大牛,要时时刻刻注意自己的言行,不要误导你的粉丝,有可能你的粉丝是一个Java爱好者。胡主席能在任何场合说自己讨厌美国吗?

    沒想到大牛不能公開發表他痛恨的語言,連誤導粉絲這個話都出來了,身為一個程式人員應該要有獨立思考的能力吧,只會盲目跟從而不去做驗證的粉絲,我想他的程式生涯走的也有限吧,至於Java的好與壞,可以在技術上做理性的討論。你不從技術上切入,卻用莫名其妙的...

    你真是闲得蛋疼
     回复 引用 查看   
  25. #25楼 qingz[未注册用户]2011-05-21 20:48
    我曾经尝试让浏览器执行一个128位的RSA加密,尝试了setTimeout, 和在其他iframe中加载等等一系列的方法,也没能实现“异步”的效果,setTimeout以后,代码确实不用挂起,能继续执行其他代码,但是加密的代码运行时,整个浏览器依然产生了短暂假死的现象。

    看来setTimeout或者setInterval等等方法只是将不需要立即生效的任务延迟执行而已,并没有“神奇”的事情发生。
     回复 引用   
  26. #26楼[楼主] Jeffrey Zhao      2011-05-21 21:06
    @qingz
    这本来就是setTimeout的工作啊,把一段工作放在以后执行。如果你要一个很长的计算而不阻塞浏览器,那么就要在其中setTimeout──用Jscex吧,哈哈。
     回复 引用 查看   
  27. #27楼 Old      2011-05-24 01:18
    幻灯片第6页有笔误

    var swap = function (a, i, j) {
    	var t = a[x]; a[x] = a[y]; a[y] = t;
    }
    


    函数 function (a, i, j) 的参数(i,j)应该改成(x,y)
     回复 引用 查看   
  28. #28楼 snowflyinginmyarms      2011-05-26 16:45
    17楼把一个娱乐明星的“基本素质”加在了一名技术大牛身上了
    风林说得好:只會盲目跟從而不去做驗證的粉絲,我想他的程式生涯走的也有限吧
    就当是交流技术的时候跳跃一下思维
    27楼犀利的眼神闪动了一下
    Jscex就接触过前面两个字母,真的是浅尝辄止啊
    最近转战看雪去弄加解密了
    学习中的小菜言多必失,慎言
    话怎么那么多,看来我也很无聊……
     回复 引用 查看   
  29. #29楼 文明的天空      2011-06-04 22:06
    老赵,谢谢你的分享。
     回复 引用 查看   
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 2047559 7zB3lKi2HPE=