• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于JS的嵌入式信息服務(wù)應(yīng)用研究

      2011-08-21 01:24:06王建濤董珍時(shí)
      圖書館研究 2011年5期
      關(guān)鍵詞:服務(wù)器端文檔嵌入式

      王建濤,董珍時(shí)

      (1.浙江大學(xué)寧波理工學(xué)院圖書館,浙江 寧波 315100;2.浙江紡織服裝職業(yè)技術(shù)學(xué)院圖書館,浙江 寧波 315211)

      1 引言

      嵌入式信息服務(wù)是泛在信息服務(wù)的重要形式,根據(jù)嵌入的范圍可分為嵌入桌面和嵌入Web兩種模式。王建濤和胡明玲在《工具條在圖書館信息服務(wù)中的應(yīng)用》[1]中以及樂小虬等在《嵌入式桌面信息服務(wù)及其系統(tǒng)實(shí)現(xiàn)》[2]中分別對(duì)嵌入桌面模式的嵌入式信息服務(wù)的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)方法進(jìn)行了研究。比嵌入桌面模式應(yīng)用范圍更廣的是嵌入Web的嵌入式信息服務(wù),其中基于JS(JavaScript)的嵌入式信息服務(wù)可根據(jù)需要隨時(shí)、多形式、低成本、高效率、無縫融合地嵌入萬維網(wǎng)中的用戶信息環(huán)境提供服務(wù)。JS是一種廣泛用于客戶端Web開發(fā)的腳本語言,常用來為HTML網(wǎng)頁添加動(dòng)態(tài)功能。這種服務(wù)在百度中稱為免費(fèi)代碼,在一些門戶網(wǎng)站中稱為信息定制(如天氣預(yù)報(bào))、Mashup服務(wù)等。作者分別在學(xué)術(shù)信息資源開放目錄網(wǎng)站(以下簡稱ODP)[3]、服務(wù)外包產(chǎn)業(yè)信息門戶網(wǎng)站[4]實(shí)現(xiàn)了基于JS的嵌入式信息服務(wù)。因此,探討基于JS的嵌入式信息服務(wù)的特點(diǎn)、信息服務(wù)架構(gòu)和關(guān)鍵技術(shù)實(shí)現(xiàn),對(duì)圖書館界廣泛開展嵌入式信息服務(wù)有著重要的借鑒和示范作用。

      2 基于JS的嵌入式信息服務(wù)的特點(diǎn)

      對(duì)用戶來說,基于JS的嵌入式信息服務(wù)技術(shù)門檻低、無縫融合、無需維護(hù)、零成本、數(shù)據(jù)同步。對(duì)圖書館來說,拓展了其信息服務(wù)的范圍,為信息服務(wù)的開展提供了嵌入用戶環(huán)境的信息服務(wù)平臺(tái)。歸納起來,基于JS的嵌入式信息服務(wù)主要有如下幾方面的特點(diǎn):

      (1)嵌入性?;贘S的嵌入式信息服務(wù)能實(shí)現(xiàn)無縫嵌入,不僅實(shí)現(xiàn)網(wǎng)站內(nèi)翻頁,還通過樣式設(shè)置將信息資源與信息服務(wù)融入用戶信息環(huán)境。

      (2)易用性。網(wǎng)站用戶只需“選擇﹢復(fù)制﹢粘貼”就可應(yīng)用基于JS的嵌入式信息服務(wù),真正實(shí)現(xiàn)了零技術(shù)門檻的應(yīng)用。

      (3)廣泛適應(yīng)性。客戶端基于JS代碼,能廣泛應(yīng)用到各類網(wǎng)站環(huán)境中。

      (4)信息粒度適中?;驹獢?shù)據(jù)配合用戶選擇的信息展示條數(shù),完全滿足用戶的需求。

      (5)靈活性。信息的展示形式、部署位置均具有相當(dāng)?shù)撵`活性,信息內(nèi)容、信息模式等都可通過簡單的定制頁面定制到合適的JS代碼,并通過多種參數(shù)設(shè)置為用戶提供了深層次應(yīng)用的可能。

      (6)泛在性。圖書館的信息服務(wù)借助JS的廣泛嵌入,不僅使信息資源得到廣泛的開放利用,還使圖書館的服務(wù)平臺(tái)無處不在成為可能。

      3 基于JS的嵌入式信息服務(wù)架構(gòu)

      筆者以O(shè)DP網(wǎng)站基于JS的嵌入式信息服務(wù)為例,闡述基于JS的嵌入式信息服務(wù)架構(gòu)?;谝子眯?、靈活性和高效率的要求,ODP基于JS的嵌入式信息服務(wù)架構(gòu)如圖1所示,其業(yè)務(wù)流程為:在客戶端裝載由ODP網(wǎng)站提供的JS代碼嵌入HTML;JS通過SRC屬性向服務(wù)器端發(fā)送讀取JS文件請(qǐng)求;服務(wù)器端的PHP程序根據(jù)查詢策略讀取數(shù)據(jù)并應(yīng)用緩存組件創(chuàng)建對(duì)應(yīng)的JS文檔,同時(shí)在緩存時(shí)完成利用統(tǒng)計(jì);再由Web服務(wù)器返回對(duì)應(yīng)的JS文檔,客戶端執(zhí)行JS代碼并裝載數(shù)據(jù),再由JS修改HTML,最后在客戶端頁面指定的地方展示并提供利用。

      圖1 基于JS的嵌入式信息服務(wù)架構(gòu)

      4 關(guān)鍵技術(shù)實(shí)現(xiàn)

      4.1 跨域訪問

      要將圖書館信息服務(wù)嵌入用戶信息環(huán)境,需要在用戶環(huán)境中讀?。ɑ蚍窒恚┓?wù)提供方的數(shù)據(jù)或服務(wù)內(nèi)容?;赬ML數(shù)據(jù)的信息資源共享模式和基于Open API的數(shù)據(jù)封裝模式均是服務(wù)器—服務(wù)器端在數(shù)據(jù)層面的直接交互,不存在跨域訪問的問題,但這種類型的應(yīng)用技術(shù)門檻高,不利于廣泛的應(yīng)用?;贘S的信息資源的利用則無需在JS嵌入的網(wǎng)站服務(wù)器進(jìn)行數(shù)據(jù)處理,而是直接嵌入到前臺(tái)HTML通過瀏覽器獲得信息資源,是基于客戶端—服務(wù)器的信息交互。但出于安全考慮,瀏覽器不允許客戶端與服務(wù)器之間的跨域訪問,一些服務(wù)器也對(duì)跨域訪問數(shù)據(jù)進(jìn)行了限制。因此,解決跨域訪問是基于JS的信息服務(wù)的關(guān)鍵。目前,解決跨域訪問的方式有以下幾種:

      (1)JSON(JavaScript Object Notation)。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,以文字為基礎(chǔ),易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。JSON與XML最大的不同在于XML是一個(gè)完整的標(biāo)記語言,而JSON 不是,它重點(diǎn)在于數(shù)據(jù)的交換[5]。

      (2)Iframe。Iframe是HTML中的元素,即文檔中的文檔,或者浮動(dòng)的框架(FRAME)。相當(dāng)于在網(wǎng)頁中開一個(gè)窗口,直接通過SRC屬性引用外部URI頁面。其特點(diǎn)是實(shí)現(xiàn)簡單,可通過URL形式傳遞參數(shù),對(duì)動(dòng)態(tài)程序進(jìn)行數(shù)據(jù)調(diào)用。不足之處是形式上的嵌入,可控性相對(duì)較差,不是基于內(nèi)容的完整嵌入。許多網(wǎng)站不愿應(yīng)用該模式,多數(shù)服務(wù)平臺(tái)(如CSDN的博客)也不支持該模式。

      (3)JS(JavaScript)文檔。瀏覽器支持作為客戶端語言的JS跨域訪問JS文檔(代碼),所以可以利用這一特點(diǎn)在服務(wù)器端將數(shù)據(jù)裝入JS文檔,再直接通過JS的SRC屬性獲取外部URL的JS文檔,最后在客戶端對(duì)JS文檔中的數(shù)據(jù)進(jìn)行分析和展示。Google AJAX Search API是這種應(yīng)用的典型代表,它通過SRC將編寫好的JS控件引入客戶端,然后在客戶端通過AJAX調(diào)用經(jīng)過服務(wù)器端裝載的JS文檔數(shù)據(jù),從而實(shí)現(xiàn)搜索與展示搜索結(jié)果。

      基于以上分析,JS是解決數(shù)據(jù)跨越訪問的較好選擇。

      4.2 自動(dòng)編碼

      在網(wǎng)絡(luò)環(huán)境中,用戶網(wǎng)站是多種編碼模式中的一種,如UTF-8、GB2312、GBK等。因而,需要對(duì)圖書館嵌入用戶環(huán)境中的信息資源根據(jù)客戶端網(wǎng)站自動(dòng)實(shí)現(xiàn)對(duì)應(yīng)的編碼??捎肑S的“document.charset”語句獲取客戶端編碼模式,并通過URL傳遞到服務(wù)器端,服務(wù)器端再對(duì)查詢的數(shù)據(jù)生成對(duì)應(yīng)的JS編碼文件。PHP中有專門的編碼轉(zhuǎn)換函數(shù)iconv,能較好地完成相關(guān)編碼的轉(zhuǎn)換。

      4.3 展示樣式

      雖然ODP提供了傻瓜式的JS代碼定制頁面[6],從這里定制的代碼基本能滿足大部分網(wǎng)站的需要,鏈接、字體大小默認(rèn)與網(wǎng)頁中的環(huán)境一致,但也提供了相關(guān)參數(shù)供用戶配置,以便高級(jí)用戶更加靈活利用,如標(biāo)題字符個(gè)數(shù)、每頁展示信息條數(shù)等均可由用戶自行設(shè)定。

      此外,由于數(shù)據(jù)已經(jīng)裝入JS文檔,且因JS文檔的開放性,對(duì)于熟悉JS編程的客戶來說,可自己根據(jù)JS文檔對(duì)數(shù)據(jù)進(jìn)行操作,一方面進(jìn)行展示效果的自由定制,另一方面通過裝載數(shù)據(jù)的操作實(shí)現(xiàn)與自己客戶端中的內(nèi)容進(jìn)行混搭(Mashup)應(yīng)用。

      4.4 動(dòng)態(tài)緩存

      當(dāng)應(yīng)用JS的嵌入式信息服務(wù)的用戶較多時(shí),為了減輕服務(wù)器的負(fù)擔(dān),進(jìn)行動(dòng)態(tài)緩存尤為必要。因此,根據(jù)業(yè)務(wù)流程分析,由PHP程序生成對(duì)應(yīng)的JS文檔并以文件的形式存儲(chǔ)在服務(wù)器Web目錄中,由PHP定時(shí)動(dòng)態(tài)更新文檔。其技術(shù)實(shí)現(xiàn)流程如下:當(dāng)客戶端通過URL調(diào)用PHP程序頁面時(shí),首先判斷是否超過更新緩存JS文檔頁面的間隔時(shí)間,若超過更新間隔時(shí)間,則重新讀取數(shù)據(jù)庫并用新數(shù)據(jù)更新緩存JS文檔,供下次訪問時(shí)使用,同時(shí)將緩存的JS文檔發(fā)送到瀏覽器;若沒超過更新時(shí)間間隔,直接將緩存的JS文檔發(fā)送到瀏覽器。緩存間隔時(shí)間可根據(jù)數(shù)據(jù)變動(dòng)的頻率、用戶量、服務(wù)器端服務(wù)能力和用戶對(duì)數(shù)據(jù)同步的要求來設(shè)定。

      4.5 利用統(tǒng)計(jì)

      圖書館提供的嵌入式信息服務(wù)到底有沒有用戶利用,誰在用,用的情況如何,這不僅是信息服務(wù)效果評(píng)價(jià)的重要依據(jù),而且對(duì)信息資源建設(shè)和信息服務(wù)策略的調(diào)整等均有重要意義。ODP網(wǎng)站對(duì)信息資源利用情況進(jìn)行統(tǒng)計(jì),其JS的統(tǒng)計(jì)策略是與動(dòng)態(tài)緩存一起完成的,即在動(dòng)態(tài)緩存組件開始緩存數(shù)據(jù)時(shí),完成對(duì)客戶端用戶情況的采集,包括用戶的域名(IP)、統(tǒng)計(jì)時(shí)間等信息。這種統(tǒng)計(jì)策略避免了頻繁統(tǒng)計(jì)造成網(wǎng)站服務(wù)效能降低,影響用戶體驗(yàn)。

      4.6 客戶端嵌入代碼

      客戶端嵌入的代碼首先是用來獲取用戶端的環(huán)境信息,包括客戶端的編碼方式、顯示數(shù)據(jù)區(qū)域等信息(見圖2中第一個(gè)腳本區(qū)域),然后再裝置從服務(wù)器端得到的信息內(nèi)容(見圖2第二個(gè)腳本區(qū)域),并以合適的方式在客戶端展現(xiàn)(見圖2中第三個(gè)腳本區(qū)域)。

      圖2 客戶端JS腳本代碼

      5 結(jié)束語

      本文研究了基于JS的嵌入式信息服務(wù)的一種應(yīng)用,該應(yīng)用實(shí)現(xiàn)了網(wǎng)絡(luò)導(dǎo)航服務(wù)。這種嵌入式服務(wù)如同在用戶環(huán)境中構(gòu)建了圖書館信息服務(wù)的一個(gè)拓展平臺(tái),通過該平臺(tái)既可以實(shí)現(xiàn)如本文研究的網(wǎng)絡(luò)導(dǎo)航信息服務(wù),也可以為用戶提供通知通告、新聞動(dòng)態(tài)、專題信息、參考資源、學(xué)習(xí)資料等信息?;贘S的嵌入技術(shù)能將圖書館豐富的信息資源完全融入用戶信息環(huán)境,體現(xiàn)圖書館的泛在服務(wù)。

      [1]王建濤,胡明玲.工具條在圖書館信息服務(wù)中的應(yīng)用[J].圖書情報(bào)工作,2007(2):121-124.

      [2]樂小虬,等.嵌入式桌面信息服務(wù)及其系統(tǒng)實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù),2008(3):7-11.

      [3]學(xué)術(shù)信息資源開放目錄[EB/OL].[2011-1-10].http://odp.nit.net.cn.

      [4]服務(wù)外包產(chǎn)業(yè)信息門戶[EB/OL].[2011-1-10].http://soip.nit.net.cn.

      [5]JSON[EB/OL].[2011-1-10].http://zh.wikipedia.org/zh-cn/JSON.

      [6]數(shù)據(jù)開放利用之:Mashup服務(wù)[EB/OL].[2011-1-10].http://odp.nit.net.cn/opendata/foryou.php.

      猜你喜歡
      服務(wù)器端文檔嵌入式
      有人一聲不吭向你扔了個(gè)文檔
      搭建基于Qt的嵌入式開發(fā)平臺(tái)
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      基于RI碼計(jì)算的Word復(fù)制文檔鑒別
      Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
      在Windows中安裝OpenVPN
      Altera加入嵌入式視覺聯(lián)盟
      倍福 CX8091嵌入式控制器
      網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
      泉州市| 仲巴县| 台北县| 田林县| 广水市| 江城| 色达县| 舒兰市| 余姚市| 蒙阴县| 山东| 敦煌市| 酒泉市| 灵璧县| 闻喜县| 泸定县| 徐闻县| 集安市| 长汀县| 翁牛特旗| 阿图什市| 镇巴县| 大丰市| 大安市| 天台县| 宣威市| 巨鹿县| 闵行区| 昭通市| 宝坻区| 岳西县| 滕州市| 苍溪县| 赞皇县| 丘北县| 吉隆县| 兴文县| 封丘县| 华宁县| 嘉黎县| 阳谷县|