Cobra —— 邁進Ajax時代

來源:互聯網
上載者:User

公司目前正在積累Web2.0的相關技術,正好就拿Cobra來練練手。以後的Cobra將放棄基於wxPython的GUI方式,而是改用基於DHTML+Ajax的技術。在GUI上做出動態視覺效果實在是一件很繁瑣的工作,但是利用Javascript + DOM就能很容易地做到。目前僅僅將顯示反編譯結果的GUI空間進行了Web化,其中在視覺效果方面,生產力的提高還是很容易就能感受到的。

目前後端是基於Django實現的,實際上,在Cobra這個項目中,沒有與database打交道,所以Django的使用還是相對簡單的,這個web後端更多地是作為web前端與python server的一個中轉站。

是初始的介面,選擇需要反組譯碼的原始碼檔案,點擊“提交”按鈕:

 

“提交”之後,通過Ajax技術串連後端的web server,完成對源檔案的反組譯碼,然後反饋結果,並顯示反組譯碼的結果,如所示

 

在上一篇文章中,我們在GUI控制項中看到了基於path選擇某一行代碼的能力,同樣,Web化後的Cobra也支援這樣的能力,在代碼地區下方的編輯框中輸入path,點擊“goto”按鈕,就會高亮顯示path對應的那一行代碼,如所示:

 

Cobra的web化對我來說,已經體現出了生產力上的解放,因為Cobra的目的是可視化Python虛擬機器,既然是可視化,那主要的工作在於GUI部分。老實說,對於GUI編程,我是下過一番功夫的,學生時代發起一個基於WTL的WUI開源項目,其中包括了多個當時“時髦”的UI風格的控制項,雖然最後無疾而終,但是在Windows GUI方面,還是有相當的經驗的。即便如此,我最深的感受就是案頭的GUI編程太繁瑣了,當然,如果使用GUI庫,會節省一部分精力,但是工作量依然會非常巨大,尤其是當你需要相當炫的UI效果時。

舉個例子,對於選中程式碼的高亮,在GUI控制項中,我僅僅簡單地將那一行選中,以區別正常行,但是在Web化後的Cobra中,通過動態地改變element的class,我可以立即做出非常美觀的高亮效果,這種效果要在GUI中實現,簡直就是噩夢。

在UI方面,Web已經成熟到可以有所作為的時代了。儘管cross browser依然是一個比較艱難的話題,不過目前誕生的各個javascript架構在這方面已經能節省很多精力了。另一方面,wxPython是一個相對狹窄的技術,而web就不同了,這樣似乎對於吸引更多的人蔘與到Cobra中來也大有裨益 :)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.