自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JS異步編程一:用Jscex畫圓

開發(fā) 前端
關(guān)注老趙的jscex很久了,jscex利用eval(str)的無(wú)限可能,從“$async” 到“async”,從不支持if else 等 到支持 if else等·,jscex正在不斷完善和優(yōu)化當(dāng)中。

一.簡(jiǎn)介

關(guān)注老趙的jscex很久了,jscex利用eval(str)的無(wú)限可能,從“$async” 到“async”,從不支持if else 等 到支持 if else等·,jscex正在不斷完善和優(yōu)化當(dāng)中。jscex完全可以投入生產(chǎn)環(huán)境了··

二.畫圓

在支持html5的瀏覽器中執(zhí)行下面代碼:

  1. > 
  2. <html> 
  3. <body> 
  4. <canvas id="myCanvas" width="480" height="300" style="border:1px solid #c3c3c3;"> 
  5. Your browser does not support the canvas element. 
  6. canvas> 
  7. <script type="text/javascript"> 
  8.     var c = document.getElementById("myCanvas"); 
  9.     var ccxt = c.getContext("2d"); 
  10.     var x = 150
  11.     var y = 150
  12.     var r = 100
  13.     cxt.moveTo(x - r, y); 
  14.     for (var i = x - r; i < x + r + 1; i++) { 
  15.         var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  16.         cxt.lineTo(i, y + tempY); 
  17.     } 
  18.     cxt.moveTo(x - r, y); 
  19.     for (var i = x - r; i < x + r + 1; i++) { 
  20.         var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  21.         cxt.lineTo(i, y - tempY); 
  22.     } 
  23.       cxt.stroke(); 
  24. script> 
  25. body> 
  26. html> 

在Canvas里顯示如下:

但是,我們明明是在畫圓,怎么沒(méi)有看到畫圓的過(guò)程?javascript就是這樣,解釋完就畫完了,而不會(huì)呈現(xiàn)解釋的過(guò)程,這也是為什么javascript不用考慮多線程問(wèn)題,僅僅UI線程。那么怎么看到畫圓的過(guò)程?

jscex閃亮登場(chǎng)!

 

  1. > 
  2. <html> 
  3. <body> 
  4. <canvas id="myCanvas" width="480" height="300" style="border:1px solid #c3c3c3;"> 
  5. Your browser does not support the canvas element. 
  6. canvas> 
  7.     <script language="javascript" type="text/javascript" src="lib/uglifyjs-parser.js">script> 
  8.     <script language="javascript" type="text/javascript" src="src/jscex.js">script> 
  9.     <script language="javascript" type="text/javascript" src="src/jscex.builderBase.js">script> 
  10.     <script language="javascript" type="text/javascript" src="src/jscex.async.js">script> 
  11. <script type="text/javascript"> 
  12.     var c = document.getElementById("myCanvas"); 
  13.     var ccxt = c.getContext("2d"); 
  14.     var x = 150
  15.     var y = 150
  16.     var r = 100
  17.     var drawAsync = eval(Jscex.compile("async", function () { 
  18.         cxt.moveTo(x - r, y); 
  19.         for (var i = x - r; i < x + r + 1; i++) { 
  20.             $await(Jscex.Async.sleep(10)); 
  21.             var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  22.             cxt.lineTo(i, y + tempY); 
  23.             cxt.stroke(); 
  24.         } 
  25.         cxt.moveTo(x - r, y); 
  26.         for (var i = x - r; i < x + r + 1; i++) { 
  27.             $await(Jscex.Async.sleep(10)); 
  28.             var tempY = Math.pow(r * r - (x - i) * (x - i), 1 / 2); 
  29.             cxt.lineTo(i, y - tempY); 
  30.             cxt.stroke(); 
  31.         }      
  32.     })); 
  33.     drawAsync().start(); 
  34. script> 
  35. body> 
  36. html> 

這樣就可以目睹畫圓全過(guò)程!

原文鏈接:http://www.cnblogs.com/iamzhanglei/archive/2011/08/16/2140113.html

【編輯推薦】

  1. JS異步編程二:自由落體
  2. JS異步編程三:Jscex無(wú)創(chuàng)痕切入jQUI
  3. JS異步編程四:Jscex+jQ打造游戲力度條
  4. JS異步編程五:Jscex制作憤怒的小鳥
  5. 看JavaScript如何實(shí)現(xiàn)頁(yè)面自適

 

責(zé)任編輯:張偉 來(lái)源: 當(dāng)耐特磚家的博客
相關(guān)推薦

2011-11-10 10:23:56

Jscex

2012-06-14 14:03:19

JavaScript

2012-06-14 14:42:42

JavaScript

2012-06-14 14:09:58

JavaScript

2011-07-27 14:10:43

javascript

2011-11-16 13:22:38

Jscex

2011-11-11 13:38:39

Jscex

2011-11-17 16:14:25

Jscex

2019-01-17 10:58:52

JS異步編程前端

2012-06-14 13:55:39

JavaScript

2011-02-22 08:49:16

.NET同步異步

2013-04-01 15:38:54

異步編程異步編程模型

2013-01-21 13:18:26

IBMdW

2011-10-18 10:17:13

Node.js

2021-03-23 07:56:54

JS基礎(chǔ)同步異步編程EventLoop底層

2013-04-01 15:25:41

異步編程異步EMP

2020-10-15 13:29:57

javascript

2011-02-22 09:09:21

.NETAsync CTP異步

2011-11-11 14:05:13

Jscex

2016-09-07 20:43:36

Javascript異步編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)