Time of Update: 2018-12-04
文章目錄 一些元素 formvideo、audio 在 Apple、Goolge 等大頭 IT 公司的推廣下,HTML5 正走向我們的技術生活中。回顧曆史,這是業界繼 AJAX 和 Web 2.0 之後,又一出現的鮮活的名詞兒(buzzword)。HTML5 下面的技術林林總總,依據不同的 W3C 的規範所構成,但並沒有一個嚴格的標準說明此技術就是 HTML5 的家族成員之一。所謂 HTML5,更像一個多種技術(包括
Time of Update: 2018-12-04
目的:在形如func(){ head head head... act(); tail tail tail...}的代碼中,常常會出現 act 並不是特定的某個動作,可能需要外界定製,如void main(){ int a = 2, b = 3; double r=a + b; printf("%lf/n", r);} 第 4 行的運算式可能是 a-b, a * b, 或者 sqrt(a*a + b*b),此時便需要將運算式傳進 main
Time of Update: 2018-12-04
所謂JSONP,是跨域的一種訪問方式,其特點在於比較方便地運行第三方的請求會話來進行跨域。在跨域這一點上,可以說是毫無顧忌的。跨域(Cross-Domain)在網路安全眼中可不是什麼客氣的行為。利弊兼有之,弄不好的話既不能為第三方提供訪問資料的服務,又暴露了更多的安全性漏洞,嚴重的還會引狼入室。一般的WebService中,支援JSON的還比較少,多數採用XML文檔作為答應結果的格式文檔。但是我們一方面知道,結合Script標籤的src的自由性,卻有無比的想象空間。那麼能不能理由<scri
Time of Update: 2018-12-04
建立對象最簡單的辦法就是 new 所屬類() 。但是,以人類為例,只有亞當和夏娃是從泥土被造的,所有的人都有父母,不是直接 new 出來的。某些場合會用到受管理的類,不由使用者任意建立。例如管理器對於寄放件而言,所有的寄放件都需要在管理器登記,所以,建立寄放件對象不能交給使用者,而由管理器的函數來做。這樣的管理器具備工廠的行為特點。工廠(Factory)模式就是這樣做的。工廠 Creator 的 FactoryMethod 返回具體產品,見圖中的 return new
Time of Update: 2018-12-04
要搭建可靈活擴充和充分解藕的系統,回調是少不了的特性。如上文,利用傳統的命令式語言如c,面向對象語言如java,函數式語言如 js 各自的語言特性,都分別可以實現回調。 c 語言的回調原理是利用函數指針特性,將函數入口地址當作參數傳遞,這是c語言很靈活的一個地方:數據和函數都在內存裡,都可以用指針的形式傳遞。c 語言這個做法的一個缺點是客觀上造成頂級函數過多,一些無意義的小運算因為要回調被迫升級為函數,這種現象也出現在遞歸裡。這個問題根本原因在 c
Time of Update: 2018-12-04
以前學做遊戲,書上說,一個打飛機的遊戲,小飛機到處亂飛,那麼它們究竟怎麼飛才好?隨機數+軌跡函數當然是一種方法,實際上,為了增大難度,錄製一段軌跡(一個 Point(x,y) 的鏈表)等使用者的飛機飛來後,綵排一道就是了。這種軌跡叫做行為模式,例如蜜蜂是按 8 字飛的。所謂設計模式意思就是常用軟體設計方法,亦即開發人員常見飛行軌跡。既然是常用,很多東西大家都想的到,即使想不到,也見得到,例如原廠模式,在 .NET 裡,會見到 File.CreateText()
Time of Update: 2018-12-04
import System;import System.Drawing;import Accessibility;import System.Windows.Forms;class Functor{var h = null;function Handler(sender, e : EventArgs){if(h) h(sender, e);}function Functor(handler){h = handler;}}class EventTestForm extends Form{
Time of Update: 2018-12-04
代理(Proxy)模式:如果業務類沒有安全機制,什麼操作都可以做,什麼危險都可能發生。代理模式提供了一種解決危機的辦法。派生一些業務的兄弟類作為業務類的代理,這樣,老闆有老闆的代理類,營銷有營銷的代理類。永遠不直接使用那個深藏殺機的業務類。問題解決。圖形如下:圖中,代理類邀請業務類做具體操作。面具(Adapter)模式:字面的翻譯是適配器,我認為翻譯成面具好理解一點。如果你手裡有一個做好的東西:足球類,沒有源碼,但可以引用進來。現在你發現,其實這個足球類和你程式中的球類是繼承關係,和你程式中籃球
Time of Update: 2018-12-04
背景:做一個音樂播放器,方法是在頁面中插入一個embed或者object標籤並指定播放的地址等屬性,並將該embed標籤定位到非可視地區(注意這裡不能使用隱藏,隱藏後embed將不會播放)然後通過js去控制播放和暫停。問題 : 測試後發現只有opera瀏覽器沒有達到預期的播放效果,通過調試,將embed標籤顯示在可視地區,發現在opera瀏覽器中embed標籤呈現出一個播放按鈕,該按鈕的title上顯示:“請點擊下載並啟用外掛程式”
Time of Update: 2018-12-04
/* Title: 自我定義函數 Description: 自身重寫,以減少第一次調用以後的代碼量 */var scareMe = function () {alert("Boo!");scareMe = function () {alert("Double boo!");};};// 1. 添加陰屬性scareMe.property = "properly";var prank = scareMe;var spooky = {boo:scareMe};prank(); //
Time of Update: 2018-12-04
昨天寫 40 個預存程序,越發意識到這個問題的嚴重.要寫很多預存程序,結構類似,毫無疑問,先做預存程序產生器,一次產生四個.速度快,代碼規範.回憶以前玩 VB 的時候,做控制項要寫很多無聊的Public Property...實現骨骼特性,當時 VB 提供了一個代碼產生工具,可以方便的產生這種無聊代碼,甚至還能類比繼承,學名叫映射,當然,逆向特性並不好. 機器產生代碼固然速度快,但比起 vb.net 在語言層級實現繼承二者優劣判若雲泥.記得 MASM 裡有個工具,用來實現 OO
Time of Update: 2018-12-04
人機博弈(王曉春著),非常經典,在研究這些演算法的時候,最大的困擾是博弈樹過於龐大,其展開完全是在運行中進行的,如要對演算法進行分析,斷點這種單線程的方法是絕對不行的。即使是日誌,將所有調試資訊全部輸出,在一個局面有幾百個上千個子局面的情形下,日誌也失去了查看的價值。 我在做一個小遊戲,開始我想機械的照抄書上的套路,寫估價器,套上
Time of Update: 2018-12-04
記得 2002 年的時候開始看 OO 的書,同時買的設計模式和劉潤東先生的 UML,一直不是很感冒。其實,設計模式是一些前人走過的經驗之路,正如前文裡提到的,例如遊標模式等等,已經變成我們生活的一部分。昔人云,李杜詩篇萬口傳,至今已覺不新鮮。床前明月光這樣的句子,小學生都會背誦了。設計模式也是如此,對於 OO
Time of Update: 2018-12-04
Nodejs我瞭解的情況不多。知之不多,就胡言亂語,不僅輕浮,而且有誤導的嫌疑,罪莫大焉。能做的是整理一些相關資源,供大家參考討論。安裝靜態檔案伺服器https://github.com/andygrn/Node.js-File-Server下面以 windows 使用者為例,安裝 nodejs http://nodejs.org/dist/v0.6.21/node.msi安裝 python http://www.python.org/getit/安裝 VS
Time of Update: 2018-12-04
經過反復試驗,試驗過程就不寫了。flex3 的 HTTPService 做的很搞笑,它的緩存機制並不依賴於服務器發給它的 cache-control 聲明,也和瀏覽器沒有任何關係,默認情況下,它總是將緩存打開,調用 clearResult 方法可以清除緩存。不過它的 session 機製做的倒是還行,一旦一個 HTTPService 登錄,其它創建的 HTTPService 也跟著登錄了,不需要把一個 HTTPService 從頭用到尾。
Time of Update: 2018-12-04
昨晚順手看到龍書,拿下來一頁一頁的翻,越翻越省悟當時自學編譯時間亦頗浮躁。以為antlr應該是很方便的產品,拿來後產生代碼,便可以實現文法分析,一旦發現不是這樣,便覺得這個東東還不到家,等有空了再玩。這樣下來,對於編譯相當於沒有學會。儘管這和雜誌的浮躁式的宣傳也有莫大的關聯。慢慢回味這些。學畫畫,買的是Painter的書,甚至還買了手寫板。而物品的臨摹卻幾乎沒做過,沒有系統的學習過繪畫知識。要畫美女,須得先瞭解美女的立體結構。而畫筆,在瞭解這種結構後便可以得心應手,Painter是類比畫筆的,會
Time of Update: 2018-12-04
Summary: 介紹Ext JS 4的Grid Ext JS 4 Grid ComponentsAuthor: Brian Moeskau(譯者:Frank Cheung)Published: 2011三月七日Ext Version: 4.x該文英文版本:http://www.sencha.com/blog/ext-js-4-grid-components我們正在不懈地努力著Ext JS4。到目前為止所呈送給各位看官的只是程式員預覽版本(Developer
Time of Update: 2018-12-04
文章目錄 第1章 設計模式基礎1.1 設計模式是什麼1.1.1 什麼是模式 從字面上來看,模,就是模型、模板的意思;式,就是方式、方法的意思。綜合起來,所謂模式就是:可以作為模型或模板的方式或方法。再簡單點說就是可以作為樣板的方式或方法,類似於大家所熟悉的範例。1.1.2
Time of Update: 2018-12-04
<script>/* Title: 函式宣告* Description: 建立一個匿名函數並將其賦給一個變數*/// 常規的函式宣告function getData() {}// 更好的函式宣告方式:函數字面量/* 優點:* 1. 更容易理解"函數是一個對象".* 2. 強制養成添加分號的習慣* 3. 不會與函數和範圍有太多的關聯*/var getData = function () {};// 命名的函數運算式/* 優點:* 1. 為調試提供了顯示的函數名,有助於堆棧檢查* 2.
Time of Update: 2018-12-04
// 建構函式function Waffle() {this.tastes = "yummy";}// 反例// 忘記使用 `new`var good_morning = Waffle();console.log(typeof good_morning); // "undefined"console.log(window.tastes); // "yummy" 此時建構函式Waffle中的this指代window//更改為使用new關鍵字var good_morning = new