一般在什么情況下使用的?
JSI項目分兩部分:框架內(nèi)核、基于這個內(nèi)核開發(fā)的系列功能子項目。
框架內(nèi)核旨在提供一個 開放的、無侵入的 腳本庫管理解決方案,讓類庫編寫者能夠自己管理好自己編寫的類庫的相關(guān)依賴,提高類庫的易用性,讓最終用戶從繁瑣的依賴管理中解脫出來;隔離各個模塊的執(zhí)行上下文,方便于重用、組織第三方腳本庫,避免它們帶來的命名污染問題。同時盡量做到簡單,不加入特殊語法,被管理的腳本無框架依賴。JSI的功能子項目,可以提供某方面的具體實用功能。如網(wǎng)頁裝飾框架,模板引擎。作為一個開放的腳本管理框架,JSI不打算提供龐大的功能API,而是讓最終用戶根據(jù)自己喜好整合其他類庫,我們也提供一些常用腳本類庫的整合實例(如:jQuery、Prototype、scriptaculous、FCKEditor 、YAHOO UI...)。框架內(nèi)核具體功能有: l 依賴管理: 腳本依賴的暴露是復雜度陡增的最大禍根。JSI提供了完善的依賴管理方案,將依賴終結(jié)在類庫開發(fā)者手中。提高類庫的易用性。對于一些簡單的腳本,JSI很難體現(xiàn)它的優(yōu)勢,但是對于復雜的腳本庫,特別是有多個且存在相互依賴腳本的復雜類庫,那么最明顯的一點,JSI可以簡化網(wǎng)頁上的腳本導入標記,不用成堆的script元素,只需導入直接使用的元素。JSI將自動導入間接依賴,且不污染全局空間。l 真正意義的按需裝載: 通常的安需裝載是阻塞式的,沒有實際意義,就一個宣傳的幌子;JSI提供了無阻塞的按需裝載方式(延遲同步裝載,異步裝載,JSI2.0+) l 腳本執(zhí)行上下文的隔離: 傳統(tǒng)方式使用類庫,將其直接導入進來,在全局上下文執(zhí)行,這帶來一個非常嚴重的沖突隱患,JSI不是這樣,每個腳本都有單獨的執(zhí)行上下文,不必擔心各個腳本的命名沖突。