在线看片电视剧免费看,精品国产一区二区三区2021,99久久久无码国产精品免费,精品人妻少妇嫩草AV无码专区

    電話(huà)

    0411-39943997

仟億科技
客服中心
  • 電話(huà)
  • 電話(huà)咨詢(xún):0411-39943997
  • 手機
  • 手機咨詢(xún):15840979770
    手機咨詢(xún):13889672791
網(wǎng)絡(luò )營(yíng)銷(xiāo) >更多

如何用推送技術(shù)動(dòng)態(tài)更新網(wǎng)頁(yè)內容

作者:billionnet 發(fā)布于:2012/3/7 17:54:11 點(diǎn)擊量:

 一、什么是動(dòng)態(tài)內容 
大多數熱門(mén)Web網(wǎng)站都從在線(xiàn)廣告業(yè)務(wù)獲利。Web頁(yè)面中的廣告空間是有限的,為了讓廣告投資物有所值,廣告客戶(hù)不僅必須在很小的廣告空間內塞入大量的信息,而且還要保證廣告能夠吸引用戶(hù)的注意力。在當前的大多數網(wǎng)站上,放入Web頁(yè)面的橫幅廣告一般由服務(wù)器在構造頁(yè)面的同時(shí)生成,我們無(wú)法把新的廣告動(dòng)態(tài)地插入到已經(jīng)發(fā)送出去的頁(yè)面。 如果要顯示新的廣告,唯一的辦法就是重新刷新頁(yè)面。我們可以用編程的方法刷新頁(yè)面,例如:

使用瀏覽器窗口對象的setTimeOut函數定期地刷新頁(yè)面。但是,用這種方法刷新廣告時(shí),用戶(hù)會(huì )很明顯地感到頁(yè)面刷新過(guò)程;同時(shí),要確定一個(gè)合適的刷新頻率也很困難。 
把頁(yè)面的過(guò)期時(shí)間設置為數秒時(shí)間,使得無(wú)論何時(shí)輸入焦點(diǎn)轉到該頁(yè)面(即瀏覽器被激活)時(shí),瀏覽器就會(huì )重新下載該頁(yè)面。 
一些大型網(wǎng)站,如yahoo.com和msn.com,都已經(jīng)采用了這些技術(shù)。這兩種方法都有各自的優(yōu)點(diǎn)和缺點(diǎn)。在只使用java的情況下,我們完全可以通過(guò)網(wǎng)絡(luò )編程和一些界面編程工作實(shí)現橫幅廣告的刷新系統,但必須解決下載時(shí)間過(guò)長(cháng)和刷新延遲的問(wèn)題。 

二、用Java實(shí)現內容推送 
結合JavaScript幀間通信和一個(gè)管理網(wǎng)絡(luò )通信的Java Applet,我們能夠用推送技術(shù)解決這個(gè)問(wèn)題。在這樣一個(gè)系統中,Java Applet的任務(wù)是連接服務(wù)器并監聽(tīng)內容更新。一旦接收到了新的內容,Applet就構造出顯示這些新內容的HTML代碼,調用一個(gè)Javascript函數并把包含新內容的HTML傳遞給JavaScript函數。JavaScript函數運用DHTML和DOM技術(shù),把頁(yè)面中一個(gè)

標記的內容用參數中傳入的新內容替換。由于瀏覽器安全的限制,Applet所打開(kāi)的Socket端口只能連接到下載該Applet的服務(wù)器。 

 

Web服務(wù)器只在80端口監聽(tīng)連接請求。因此,除了Web服務(wù)器之外,我們還需要一個(gè)接受Applet的Socket連接請求的網(wǎng)絡(luò )應用服務(wù)。這個(gè)網(wǎng)絡(luò )應用服務(wù)定時(shí)地查詢(xún)數據庫,把改動(dòng)數據發(fā)布(推送)到所有已經(jīng)連接的Applet。由于運用了隱藏幀和JavaScript的幀間通信功能,我們能夠從用戶(hù)面前隱藏大多數JavaScript邏輯。 

在這整個(gè)處理過(guò)程中,最困難的任務(wù)是Java Applet與JavaScript代碼之間的通信。Netscape提供了一個(gè)稱(chēng)為netscape.javascript.JSObject的類(lèi)。要使用這個(gè)對象,請加入一個(gè)包含特殊“MAYSCRIPT”屬性的Applet標記:

 

 

JSObject的方法允許Applet與文檔對象交互以及調用JavaScript命令。例如,把下面的代碼放入Applet,我們就能夠訪(fǎng)問(wèn)窗口對象: 

 

獲得JSObject引用后,我們就能夠訪(fǎng)問(wèn)文檔窗口對象,并通過(guò)JSObject的eval()方法調用JavaScript函數。 

三、用DHTML更新頁(yè)面 
在把來(lái)自Applet的新內容寫(xiě)入文檔時(shí),為了不影響原來(lái)已經(jīng)存在的內容,我們可以使用HTML的

 
標記。這個(gè)標記在IE和Netscape中是不同的。 

 

  對于IE以及Netscape 6,這個(gè)HTML標記是: 

// 所有要更新的內容必須用id標識

 

 


  對于Netscape 4.x版本,這個(gè)HTML標記是: 

 

  雖然我們可以通過(guò)引用適當的ID,從Applet直接更新HTML內容,但為了清楚起見(jiàn),我們將把更新HTML代碼的程序邏輯放入JavaScript函數。下面的JavaScript代碼把瀏覽器的類(lèi)型保存到ie變量: 

Applet從新數據構造出HTML代碼,把它保存到JavaScript變量content,然后調用assignData()方法。內容數據可以是從純HTML到xml到二進(jìn)制數據的任何東西。 

// 根據瀏覽器類(lèi)型調用合適的方法 function assignData() { if(ie) {explore();} else {navig(); } } 


如果瀏覽器是IE或者Netscape 6,Applet調用explore()方法: 

//content是一個(gè)javascript變量,它以HTML格式描述了需要 //顯示的新數據 function explore() { iexplorer.innerHTML=content; } 

  如果瀏覽器是Netscape 4.0或者更高版本,Applet調用navig()方法: 

四、通信過(guò)程 
在服務(wù)器端,一個(gè)ImageAppliation.java類(lèi)的實(shí)例響應Socket連接請求,并為每一個(gè)新的連接請求創(chuàng )建一個(gè)新的線(xiàn)程。為了簡(jiǎn)化代碼,每一個(gè)線(xiàn)程只檢查數據文件是否改變。如果數據文件已經(jīng)改變,則線(xiàn)程讀取文件內容,并把新的數據發(fā)送給已經(jīng)連接的Applet(示例應用把整個(gè)文件發(fā)送給Applet)。 

在客戶(hù)端,一個(gè)隱藏幀包含了ImageApplet.java這個(gè)Applet,因此用瀏覽器的查看HTML源代碼功能是無(wú)法看到Applet標記的。Applet實(shí)現了連接服務(wù)器(下載該Applet的源服務(wù)器)的功能,并實(shí)現了一個(gè)簡(jiǎn)單的通信協(xié)議。建立與服務(wù)器的連接之后,Applet接收來(lái)自服務(wù)器的數據,構造出HTML代碼,并調用JavaScript函數把數據傳入文檔: 

netscape.javascript.JSObject完成Applet到JavaScript的通信,不同版本的客戶(hù)端瀏覽器需要不同的版本。你可以下載得到為Netscape提供的壓縮類(lèi)文件java40.jar。IE已經(jīng)帶有JSObject類(lèi),但有點(diǎn)難找。你可以搜索$windows$\Java\Packages目錄尋找包含JSObject類(lèi)的ZIP文件。 

服務(wù)器把ImageArrayElement.java類(lèi)的實(shí)例通過(guò)toString()方法串行化成為字符串發(fā)送給Applet。服務(wù)器從數據文件構造出各個(gè)對象,調用toString()方法,連接得到代表所有對象的字符串,最后發(fā)送結果字符串。而在另一端,Applet接收并解析這個(gè)字符串,重新構造出各個(gè)ImageArrayElement對象。這里之所以用一個(gè)長(cháng)字符串的形式發(fā)送數據,是因為這種方法只需要很簡(jiǎn)單的處理過(guò)程,使得用戶(hù)能夠以接近實(shí)時(shí)的速度立即得知數據的變化;但是,我們也可以用另外一種方法,即以向量的形式發(fā)送對象。 

在一個(gè)正式運行的應用中,你一般應該讓新數據插入當前頁(yè)面的過(guò)程透明。但在示例應用中,為了讓程序運行過(guò)程更加直觀(guān),它將在新內容到達的時(shí)候提示用戶(hù)。 

推送技術(shù)最主要的優(yōu)點(diǎn)就是應用服務(wù)器只把那些改變的數據發(fā)送到網(wǎng)絡(luò ),從而使得延遲減到了最少。由于這個(gè)Applet負責完成的工作非常少(不涉及用戶(hù)界面,這部分工作由瀏覽器負責),所以Applet體積很小,裝載速度非???。 

五、如何運行本文實(shí)例 
要測試本文示例應用,你的機器上必須安裝有Web服務(wù)器和JDK 1.7或更高版本。 

安裝要點(diǎn): 

解開(kāi)ZIP壓縮文件并安裝到Web服務(wù)器默認根目錄。 
對于IIS服務(wù)器,默認根目錄是Inetput\wwwroot 
對于jsdk2.1所帶的免費服務(wù)器,默認目錄是<安裝目錄>\webpages 
解開(kāi)壓縮文件之后,所有文件都將安裝到/exp/目錄。 
把下面幾行代碼加入默認頁(yè)面。每一種服務(wù)器都有自己的默認頁(yè)面,IIS的默認頁(yè)面是“default.htm”,請參見(jiàn)Web服務(wù)器文檔了解具體說(shuō)明: 

 

  •  

 

 

運行應用的步驟: 

打開(kāi)一個(gè)DOS窗口,進(jìn)入<默認Web目錄>/exp,執行“java Imageapplication”。系統將顯示“Server started listening at port 6011”。注意確保classpath環(huán)境變量指向了當前工作目錄。 
啟動(dòng)Web服務(wù)器。 
打開(kāi)瀏覽器輸入下面的URL:http://localhost:8080。該URL將打開(kāi)Web服務(wù)器的默認頁(yè)面,它應該有一個(gè)“Java based dynamic Ad-Banner”鏈接。點(diǎn)擊這個(gè)鏈接就啟動(dòng)了本文的示例應用。 
用Notepad打開(kāi)“/exp/images.txt”文件,復制并粘貼一行內容,保存文件。你可以立即看到系統顯示一個(gè)JavaScript窗口提示內容更新。關(guān)閉JavaScript窗口,頁(yè)面將顯示新的內容。 
 

 



分享到:


Copyright@ 2011-2016 版權所有:大連千億科技有限公司 遼ICP備11013762-3號   google網(wǎng)站地圖   百度網(wǎng)站地圖   網(wǎng)站地圖

公司地址:大連市沙河口區中山路692號辰熙星海國際2317 客服電話(huà):0411-39943997 QQ:2088827823 37482752

法律聲明:未經(jīng)許可,任何模仿本站模板、轉載本站內容等行為者,本站保留追究其法律責任的權利! 隱私權政策聲明

97在线 | 日韩| 无码人妻一区二区中文| 就操成人网| 老妇炕上偷老汉视频露脸| 国产成人精品优优AV| 天下第二社区在线视频|