javascript學習筆記[8]--BOM基本應用


           玩了好幾天,玩的也好累了,天天打dota,打cf,和弟弟兩個人開黑,然后老是被殺,弄得英雄1200的初始積分被我刷到了1分,看來我真的不是玩游戲這塊料,算了,算了,看點書吧,大家新年快樂。

           7.1BOM之源---window對象

           基礎知識:BOM是(Browser Object Model--瀏覽器對象模型),由於瀏覽器是javascript程序的宿主,所以window對象,以及有它產生的對象都稱為宿主對象,它們包括(document,location,navigator,event,history,screen等)。

           如果看過我前面的文章的話,肯定會記得一個打印機的效果,它就是用setInterval()和clearInterval()----定時器,還有setTimeout()和clearTimeout()方法實現延遲調用,用這兩對方法的時候注意估計一下函數執行時間,如果調用的函數執行的時間超過間隔期就會導致不可預知的問題。

           基本的交互操作:

           1. 警告對話框----alert(msg);--這個沒啥好說的呢,總應該都會的吧

           2. 確認對話框----confirm(msg);--彈出消息提示框,有是否選項,該方法返回true就是“是”,false就是“否”。

           3. 提示輸入消息對話框---prompt(msg,[input]);--該方法的返回值是一個整數或者一個字符串,表示用戶輸入的消息。(用的挺少的)

           4. 增強的交互式對話框---showModalDialog(sURL[, vArguments])---很強大,可以參考這篇文章JS中showModalDialog 詳細使用,個人感覺現在這種方式用的挺少的,貌似記得好像有注入風險,只是有那么個印象,也不知道對不對,反正我是不太用的

           5. 我自己的辦法:在[原創]銀行MIS系統前台開發總結(3)-dataTable控件應用2中也有用到,其實很簡單,但是依賴了easyui這個控件,其他控件也有類似的辦法,看一下下面的代碼:

<div id="addRowDialog" title="信息編輯" closed='true'  class="dialog">
<!--
 //這里面寫文檔
 -->
</div>
//如果需要使用,就用下面的一段,就可以彈出對話框了,個人感覺很棒。
$('#addRowDialog').dialog('open');

          window.open---打開新窗口,window.close關閉當前窗口,window.focus使窗口獲取焦點。

           7.2 BOM基本應用—管理瀏覽歷史、解析地址和獲取瀏覽器信息

               1. history(歷史)對象指瀏覽器的瀏覽歷史,使用該對象的方法和屬性,就可以自定義前進和后退功能,具體可以使用以下幾個:

                        back()--表示后退,語法格式為history.back([num]),參數num可選,如果沒有參數,則默認倒退一步。

                        forward()--表示前進,該方法沒有參數

                        go()--跳轉到一個特定的地址,語法格式為history.go([location]);參數location可以是整數或者是URL字符串,正數是前進,負數時后                              退,0表示刷新當前頁,與location.reload()等效。

               2. location對象--很重要的一個對象,使用console.log(window.location);就會得到下面的一系列信息:

               接下來你就可以通過location.獲取各個屬性,location.XXX()獲取各個方法。

             3.navigator對象 ,使用console.log(window.navigator);查看一些該類的各個方法和屬性,然后需要的話調用就行了。一般用來檢測瀏覽器的。

     7.3 客戶端數據存儲技術

              Web存儲機制是一種通過字符串形式的key/value對來安全地存儲和使用數據的方法。

             1. 本地存儲--localStorage,沒有時間限制的數據存儲。

                 使用非常簡單,按照名值對的形式獲取和賦值,如下代碼:    

 var oStorage = window.localStorage;
oStorage.userName = "tonylp";

 

              如果是用chorme瀏覽器的話,按一下f12,在Resources下的Local Storage下就可以看到博客園下博文臨時存儲key為DraftBody,里面存儲的value值為文章臨時信息,key為DraftTitle,里面存儲的是博文title。(我指的是你用網頁編譯器發表博文)。

                還有一個瀏覽器兼容問題,較早版本的FireFox沒有實現localStorage,但它提供了globalStorage屬性用於為指定域創建本地存儲區域。如下代碼實現兼容:

var StrDomain = "host.yourDomain"   //指定當前域
var oStorage = window.localStorage?window.localStorage:window.globalStorage[strDomain];

 

            2. 會話存儲--sessionStorage,針對一個會話期的數據存儲。

                 sessionStorage針對一個Session進行數據存儲,當用戶關閉瀏覽器窗口后,數據會被刪除。用法與localStorage相同,可以用戶提交表單錯誤時恢復有效數據。

           3. Storage接口--HTML 5規定window.sessionStorage和window.localStorage屬性返回的數據類型都是Storage

               setItem(key,value)--設置key和value值

               getItem(key)--通過key獲取value值

               removeItem(key)--刪除value值

               oStorage.clear()--清除所有key/value對

               oStorage.key(index)--獲取key值。

             3. Web SQL Database

                 (1)使用window對象的window.openDatabase()方法可以再網頁內創建和使用Web SQL Database。

                 (2)執行SQL操作:

                           1)Database.transaction(callback[,errorCallback[, successCallback]]);允許執行讀寫操作

                           2) Database.readTransaction(callback[,errorCallback[, successCallback]]);僅允許執行讀操作

                              參數callback定義一個事物操作要執行的回調函數,該函數內執行的SQL操作都是事物的,要么全部成功,要么全部失敗。

                              參數errorCallback可選,定義一個事物操作失敗時要執行的回調函數,需要一個參數,參數是SQLError對象。

                              參數successCallback可選,定義一個事物操作成功時要執行的回調函數,該回調函數沒有參數。

                 (3) 執行SQL語句:

                            SQLTransaction對象定義了executeSql()方法用於執行SQL操作,語法格式:

                            oSQLTranscation.executeSql(sqlStatement[,arguments[,callback[,errorCallback]]]);

        7.4 新的服務器通信技術

                   簡單的說一下服務器通信技術,如果需要詳細了解還是去看找專門的書吧,我和同學參加的一個html5開發大賽就是用到了web Socket來實現遠程桌面監控。

                   HTTP協議是“請求/響應”模型,現在的通信方式基本都是這種類型,為了打破HTTP協議的限制,HTML5規范定義了Server-Sent Event和Web Socket,幫助服務器將數據“推送”到客戶端瀏覽器。        

                   1. 服務器推送技術使用事件來實現(Server-sent Event),客戶端使用EventSource對象實現。

source = new EventSource(url);
source.onopen = function(event){

};
source.onmessage = function(event){

};
source.onerror = function(event){

};

 

                   2.Web Socket可使客戶端Web應用程序與服務端進程實現雙向通信。

socket= new WebSocket(url);
socket.onopen = function(event){

};
socket.onmessage = function(event){

};
socket.onerror = function(event){

};

 

              好了,就這些吧,看書然后總結也就這些東西,接下來就該開始DOM篇了。書也看了一半多了。

              以上全部都屬個人辛辛苦苦總結,請大家轉載的時候附上原創鏈接: http://www.cnblogs.com/tonylp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM