日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

桌面应用程序员简单尝试Rich JavaScript Application

發(fā)布時(shí)間:2025/6/17 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 桌面应用程序员简单尝试Rich JavaScript Application 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

雖然10年前搞過(guò)一段時(shí)間的Web應(yīng)用開(kāi)發(fā),且為所在企業(yè)設(shè)計(jì)了一個(gè)基于ASP.NET WebForms(在.NET 1.1的基礎(chǔ)上)的Web應(yīng)用開(kāi)發(fā)框架。但是,后來(lái)一直做的都是桌面類(lèi)的應(yīng)用,比如SmartClient,基于Silverlight的RIA,甚至到現(xiàn)在,我們公司的產(chǎn)品就是一個(gè)純客戶(hù)端的單機(jī)WinForms應(yīng)用。所以,我應(yīng)該是一個(gè)徹徹底底的桌面應(yīng)用程序員了。已經(jīng)很久不碰JavaScript這樣的東西了。

最近開(kāi)始對(duì)JavaScript感興趣的原因,不外乎下面幾個(gè):

  • 最近1年Node.js的極其火熱,想深入了解一下,尤其Azure(及WebMatrix)對(duì)Node.js強(qiáng)力支持更是加深了我的興趣;
  • ASP.NET MVC中內(nèi)置了一個(gè)MVVM的JavaScript庫(kù)——KnockoutJS,想知道為什么微軟對(duì)KO情有獨(dú)鐘;
  • Windows 8 App可以使用JavaScript和HTML5來(lái)開(kāi)發(fā),可見(jiàn)就算是桌面應(yīng)用,JavaScript未來(lái)也有用武之地;
  • 微軟推出了TypeScript,以及之前微軟非官方的Script#,還有CoffeeScript的被持續(xù)關(guān)注,都說(shuō)明人們希望以更加簡(jiǎn)單的方式來(lái)使用JavaScript開(kāi)發(fā)大型更加Rich的應(yīng)用程序

我做的簡(jiǎn)單嘗試的場(chǎng)景如下:

  • 公司官網(wǎng)用php構(gòu)建的,對(duì)php不是太熟悉,也不想去對(duì)原有網(wǎng)站框架做調(diào)整;
  • 公司博客基于wordpress構(gòu)建
  • 需要在官網(wǎng)中自動(dòng)顯示博客的最新文章列表

由于之前已經(jīng)開(kāi)始學(xué)習(xí)Knockout的東西,所以昨天決定基于KO來(lái)實(shí)現(xiàn)上述場(chǎng)景,這可以說(shuō)是對(duì)KO的一點(diǎn)實(shí)際嘗試。具體做法如下:

  • 在wordpress中安裝feed json插件,暴露json的接口
  • 創(chuàng)建一個(gè)html文件部署到網(wǎng)站根目錄
  • 在官網(wǎng)中創(chuàng)建一個(gè)欄目塊(支持自定義HTML),在其中插入iframe元素,指向上面的html文件。之前嘗試過(guò)在HTML中直接實(shí)現(xiàn)代碼,但是由于jQuery版本會(huì)沖突,所以改用iframe。
  • 這個(gè)簡(jiǎn)單應(yīng)用程序的HTML文件如下:

    <body><div><div data-bind="foreach: blogs"><p><a data-bind="attr: {href: $data.permalink, title: $data.title}" target="_blank"><span data-bind="text: $data.date"></span>: <span data-bind="text: $data.title"></span></a></p></div><a href="blog" title="More" target="_blank">More</a></div><script type='text/javascript'>function Blog(data) {this.title = ko.observable(data.title);this.permalink = ko.observable(data.permalink);this.date = ko.observable(data.date.substr(0, 10));}function BlogViewModel() {var self = this;self.blogs = ko.observableArray([]);$.getJSON("/blog/?feed=json", function (allData) {var mappedBlogs = $.map(allData, function (item) { return new Blog(item) });self.blogs(mappedBlogs);});}ko.applyBindings(new BlogViewModel());</script> </body>

    上面HTML文件分作兩個(gè)部分。第一個(gè)部分就是用于顯示界面的HTML,第二部分是實(shí)體對(duì)象的定義和獲取數(shù)據(jù)執(zhí)行綁定的JavaScript代碼。

    在第一部分中,由于使用了MVVM思想的綁定機(jī)制,對(duì)于我而言是非常熟悉的,這個(gè)和XAML沒(méi)有太多區(qū)別。

    第二部分中,首先利用jQuery獲取JSON數(shù)據(jù)并轉(zhuǎn)換為可綁定的JavaScript對(duì)象(這里真的簡(jiǎn)單的讓我感到驚喜),可綁定是通過(guò)ko.observable來(lái)實(shí)現(xiàn)的;然后在ViewModel對(duì)象中提供一個(gè)可綁定的數(shù)組屬性給界面(即blogs屬性)。

    上述功能雖然簡(jiǎn)單,但是我覺(jué)得已經(jīng)觸摸到了所謂Rich JavaScript Application或微軟稱(chēng)之為 Scale JavaScript Application的實(shí)現(xiàn)途徑了。即:

    • 使用jQuery這樣的框架來(lái)簡(jiǎn)化DOM的操作
    • 使用KnockoutJS或者AngularJS這樣庫(kù)或框架來(lái)簡(jiǎn)化數(shù)據(jù)呈現(xiàn),行為處理
    • 使用CoffeeScript或者TypeScript來(lái)簡(jiǎn)化JavaScript的編寫(xiě)
    • 開(kāi)發(fā)可以跨瀏覽器運(yùn)行的純客戶(hù)端應(yīng)用,也具備和服務(wù)端的交互能力(一般基于RESTful),這樣的應(yīng)用具有良好的交互性,可以完成復(fù)雜的數(shù)據(jù)操縱。

    這里有一篇參考文章,值得一讀:

    Rich JavaScript Applications – the Seven Frameworks (Throne of JS, 2012)

    轉(zhuǎn)載于:https://www.cnblogs.com/redmoon/archive/2012/10/12/2721427.html

    總結(jié)

    以上是生活随笔為你收集整理的桌面应用程序员简单尝试Rich JavaScript Application的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。