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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

ExtJS + Gears

發布時間:2024/4/13 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ExtJS + Gears 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一直對Google的Gears很感興趣,現在終于有時間嘗試一下了,Gears的主要功能如下:

  • LocalServer?在本地緩存和提供應用程序資源(HTML、JavaScript、圖片等) ;
  • Database?將數據存儲在本地可以完全搜索的關系數據庫中 ;
  • WorkerPool?通過異步執行資源優化操作使網絡應用程序的響應速度更快。

如果要將ExtJS和Gears結合起來的話,首先想到的是用Gears來緩存ExtJS的文件,因為ExtJS很龐大。因此首先要使用的就是LocalServer,下面就重點介紹如何使用LocalServer對ExtJS的資源文件進行本地緩存。

既然要使用ExtJS和Gears,那么下載和安裝就不再討論了,這些確實很容易。(Gears安裝參考這里,ExtJS只要下載并建一個IIS虛擬目錄即可)

下面是測試用的代碼:

/// <reference path="http://localhost/ext-2.2/vswd-ext_2.2.js" />Ext.BLANK_IMAGE_URL = '/ext-2.2/resources/images/default/s.gif';// 全局緩存名稱和資源文件名稱 var STORE_NAME = 'GearStudy'; var MANIFEST_FILENAME = 'manifest.txt'; // 定義全局對localserver和ManagedStore的引用 var localServer; var store;Ext.onReady(function() {// 檢查是否已經安裝Gearsif (!window.google || !google.gears) {textOut('Note: You must install Gears first.');return;}// 創建localserver和ManagedStorelocalServer = google.gears.factory.create("beta.localserver");store = localServer.createManagedStore(STORE_NAME);// ManagedStore更新出錯時的回調函數,當應用程序離線或者manifest文件出錯時,// 顯示一個錯誤信息窗口store.onerror = function(error) {Ext.MessageBox.show({title: 'ERROR',msg: error.message,icon: Ext.MessageBox.ERROR,buttons: Ext.MessageBox.OK});}// 定義一個對進度窗口的引用變量,var ub;// ManagedStore報告進度的回調函數,下載manifest文件中定義的url時調用,// 顯示一個進度窗口,并根據下載的進度更新進度條。store.onprogress = function(details) {if (!ub) {ub = Ext.MessageBox.progress('Alert', 'Loading offline manifest files ...', '0.00%');}var val = details.filesComplete / details.filesTotal;ub.updateProgress(val, (val * 100).toFixed(0).toString() + '%');};// ManagedStore完成下載時的回調函數,這個函數可能在兩種情況下被調用,// 1. 調用checkUpdate函數手工更新;// 2. ManagedStore自動檢查更新。store.oncomplete = function(details) {if (ub) {ub.hide();ub = null;}if (!Ext.isEmpty(details.newVersion)) {textOut('Local manifest version is ' + details.newVersion + ' now !');}};// 輸出當前的Gears緩存信息var msg;if (Ext.isEmpty(store.currentVersion, false)) {msg = 'No local manifest find' + ' now !';}else {msg = 'Local manifest version is ' + store.currentVersion + ' now !';}textOut(msg);// 手工更新Gears緩存,當有了本地緩存之后,即使把IIS停掉,這個地址依舊可以瀏覽。Ext.fly('offlineBtn').on('click', function() {store.manifestUrl = MANIFEST_FILENAME;store.checkForUpdate();});// 手工刪除Gears緩存,Ext.fly('onlineBtn').on('click', function() {localServer.removeManagedStore(STORE_NAME);textOut("Done. The local store has been removed." +"You will now see online versions of the documents.");});Ext.fly('showWindow').on('click', function() {if (!window.win) {win = new Ext.Window({ width: 320, height: 240, title: 'Hello,world', closeAction: 'hide' });}win.show('showWindow');}); });// Utility function to output some status text.function textOut(s) {Ext.fly('msg').update(s); }

最后使用的項目結構如下圖所示,如果有興趣的話可以自己下載體驗一下。

張志敏所有文章遵循創作共用版權協議,要求署名、非商業 、保持一致。在滿足創作共用版權協議的基礎上可以轉載,但請以超鏈接形式注明出處。

本博客已經遷移到 GitHub , 圍觀地址:?http://beginor.github.io/

本文轉自張志敏博客園博客,原文鏈接:http://www.cnblogs.com/beginor/archive/2009/03/21/1418582.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的ExtJS + Gears的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。