1 回答

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個贊
NodeJS
定義
一個Javascript運(yùn)行環(huán)境(runtime),基于Chrome JavaScript運(yùn)行時建立的平臺, 用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。
作用
Node.js 使用事件驅(qū)動, 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時應(yīng)用。
特點(diǎn)
事件驅(qū)動;
非阻塞I/O;
輕量、可伸縮,適于實(shí)時數(shù)據(jù)交互應(yīng)用;
單進(jìn)程,單線程;
NodeJS的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
高并發(fā)(最重要的優(yōu)點(diǎn));
適合I/O密集型應(yīng)用;
缺點(diǎn)
不適合CPU密集型應(yīng)用;
CPU密集型應(yīng)用給Node帶來的挑戰(zhàn)主要是:由于JavaScript單線程的原因,如果有長時間運(yùn)行的計算(比如大循環(huán)),將會導(dǎo)致CPU時間片不能釋放,使得后續(xù)I/O無法發(fā)起;
Backbone.js
定義
為復(fù)雜Javascript應(yīng)用程序提供模型(models)、集合(collections)、視圖(views)的結(jié)構(gòu)。
作用
適合的應(yīng)用場景是單頁面應(yīng)用,并且頁面上有大量數(shù)據(jù)模型,模型之間需要進(jìn)行復(fù)雜的信息溝通。Backbone 在這種場景下,能很好的實(shí)現(xiàn)模塊間松耦合和事件驅(qū)動。
主要組成
model:創(chuàng)建數(shù)據(jù),進(jìn)行數(shù)據(jù)驗(yàn)證,銷毀或者保存到服務(wù)器上;
collection:可以增加元素,刪除元素,獲取長度,排序,比較等一系列工具方法,說白了就是一個保存 models的集合類;
view:綁定html模板,綁定界面元素的事件,初始的渲染,模型值改變后的重新渲染和界面元素的銷毀等;
Backbone.js優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
將數(shù)據(jù)和界面很好的分離開來;
將事件的綁定很好的剝離出來,便于管理和迭代;
使得Javascript程序的模塊化更加清晰、明了;
缺點(diǎn)
Model 層比較簡單,如果要支持 One-To-One 或者 One-To-Many 等復(fù)雜數(shù)據(jù)關(guān)系時有些力不從心;
Model 只能屬于一個 Collection 這個設(shè)計,頁面復(fù)雜的時候會很受局限;
View 層沒有很強(qiáng)的 Page 管理機(jī)制;
- 1 回答
- 0 關(guān)注
- 704 瀏覽
添加回答
舉報