隨筆 - 30, 文章 - 0, 評論 - 9, 引用 - 0
          數(shù)據(jù)加載中……

          Web的桌面提醒(Popup)

          大多數(shù)Windows程序都有桌面提醒(Popup)功能,如Msn Messenger,Outlook2003,F(xiàn)oxMail,SharpReader等,對用戶來說可以非常的方便最新的信息。

          在Web中借用IE5.5+的Popup,也可以實現(xiàn)類似的功能,在CnForums1.2中新增了一種特性就是類似于Outlook2003一樣,當有新帖子/私人留言時就有Popup提示,如圖:
          現(xiàn)在就技術(shù)問題介紹一下:

          一,什么是Popup

          在IE5.5+中開始支持的Popup窗口有很多很特別的特性:

          • Popup窗口可以超出瀏覽器窗口區(qū)域;
          • 可以不用擔心被下拉框、flash、Iframe等這些東西遮擋;
          • 即時窗口沒有焦點,Popup窗口也可以彈出并顯示
          • 一個Popup窗口打開后,當在它的區(qū)域以外點擊或者另一個Popup窗口被打開時都會自動關(guān)閉;
          • Popup窗口是沒有焦點的;
          • 用戶不能改變Popup窗口大小;
          • Popup窗口中的內(nèi)容是不能被選擇的;
          • ......

          ?只是Web下的Popup比起Windows中的Popup還是弱一些,但是已經(jīng)夠用了。Msdn上對Popup有非常詳細的介紹“Using the PopupObject (Internet Explorer - DHTML)

          二,怎么創(chuàng)建一個Popup

          Msdn上的示例代碼:
          				
          						
          // 創(chuàng)建Popup對象 var oPopup = window.createPopup(); // Popup對象和Window對象一樣,里面包含了一個完整的HTML文檔 var oPopupBody = oPopup.document.body; // 在Body中插入HTML oPopupBody.innerHTML = " Display some <B>HTML</B> here. " ; // 設(shè)置顯示的位置、大小、參照物 oPopup.show( 100 , 100 , 200 , 50 , document.body);

          三,Popup的顯示

          多個Popup不能共存(Popup中創(chuàng)建Popup除外),所以web中的Popup不方便像Msn Messenger的Popup提示那樣“爬樓梯”,所以最簡單有效的方法就是像Outlook2003的Popup一樣,逐個Popup提醒。
          (參考WebMessenger的實現(xiàn))用Js建個隊列,將需要Popup提示的內(nèi)容都放在隊列中,用一個定時器,定時從隊列中取一個Popup,每個Popup顯示7秒。

          四,怎么知道有新帖子

          在Web程序中,只能通過“拉”的技術(shù),即定時向服務器發(fā)送請求——通過定時刷新或者是xmlhttp的Get。
          我們需要有個時間戳來記錄最后請求時間,這樣就好根據(jù)這個時間戳來獲取時間戳之后的帖子。
          如果每次根據(jù)時間戳來獲取最新帖子,服務器負荷比較大,因為并不是每次請求都有新帖子的,優(yōu)化一下,再給每個在線用戶設(shè)置有無新帖子、有無新留言的狀態(tài)位,當發(fā)表新帖子后更新每個人的“有無新帖”狀態(tài)位。這樣每次請求時先判斷有沒有新帖子,如果有新帖子,才獲取所有帖子的標題和內(nèi)容簡要。

          五,具體實現(xiàn)

          客戶端代碼:http://webuc.net/MyProject/Popup/popup.htm
          http://webuc.net/MyProject/Popup/popup.rar

          和論壇程序的結(jié)合:
          demo: http://bbs.openlab.net.cn (登錄后有新帖子即提示(IE5.5+))
          http://bbs.openlab.net.cn/PostAttachment.aspx?PostID=376725

          參考文章:無限菜單之 xml+popup 版(IE5.5+)

          posted on 2006-11-07 17:32 風雨兼程 閱讀(534) 評論(0)  編輯  收藏 所屬分類: Asp.net 2.0

          主站蜘蛛池模板: 高青县| 西贡区| 汉中市| 古浪县| 呼伦贝尔市| 饶河县| 夏邑县| 永川市| 沙坪坝区| 新竹市| 贵港市| 福建省| 醴陵市| 襄城县| 承德市| 彭山县| 桃园市| 潜江市| 深州市| 崇州市| 沙雅县| 黄山市| 遂平县| 曲松县| 乌鲁木齐市| 库车县| 鹿泉市| 无极县| 嘉荫县| 芦溪县| 兴安县| 仁怀市| 南充市| 志丹县| 策勒县| 岳阳市| 郑州市| 松阳县| 凤山市| 安岳县| 吉林市|