⑴ 介紹HTML5幾種存儲方式
HTML5 提供了兩種在客戶端存儲數據的新方法:..兩者都是僅在客戶端(即瀏覽器)中保存,不參與和伺服器的通信;
localStorage - 沒有時間限制的數據存儲,第二天、第二周或下一年之後,數據依然可用。
如何創建和訪問 localStorage:
<scripttype="text/javascript">
localStorage.lastname="Smith";
document.write(localStorage.lastname);
</script>
下面的例子對用戶訪問頁面的次數進行計數:
<scripttype="text/javascript">
if(localStorage.pagecount){
localStorage.pagecount=Number(localStorage.pagecount)+1;
}
else{
localStorage.pagecount=1;
}
document.write("Visits"+localStorage.pagecount+"time(s).");
</script>
sessionStorage - 針對一個 session 的數據存儲,當用戶關閉瀏覽器窗口後,數據會被刪除。
創建並訪問一個 sessionStorage:
<scripttype="text/javascript">
sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);
</script>
下面的例子對用戶在當前 session 中訪問頁面的次數進行計數:
<scripttype="text/javascript">
if(sessionStorage.pagecount){
sessionStorage.pagecount=Number(sessionStorage.pagecount)+1;
}
else{
sessionStorage.pagecount=1;
}
document.write("Visits"+sessionStorage.pagecount+"time(s)thissession.");
</script>
sessionStorage 、localStorage的區別
共同點:都是保存在瀏覽器端,且同源的。
區別:數據有效期不同,sessionStorage:僅在當前瀏覽器窗口關閉前有效,自然也就不可能持久保持;localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據;cookie只在設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉。
作用域不同,sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個頁面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知機制,可以將數據更新的通知發送給監聽者。Web Storage 的 api 介面使用更方便。
⑵ 如何設置html5本地存儲
web存儲最初作為HTML5的一部分被定義成API形式,但是後來被剝離出來作為獨立的標准了。
web存儲表轉所描述的API包含localStorage對象和SessionStorage對象,這兩個對象實際上是持久化關聯數組,是名值對的映射表,「名」和「值」都是字元串。
例子:
varname=localStorage.username;//查詢一個儲存的值
name=localStorage["username"];//等價於數組表示法
if(!name){
name=prompt("whatisyourname?");
localStorage.username=name;
}
//迭代所有存儲的name/value對
for(varnameinlocalStorage){
varvalue=localStorage[name];
}
⑶ 如何向資料庫中存儲html數據
1.
資料庫中保存的html內容都是文本格式,
資料庫欄位如oracle選用varchar2(2000)或clob(大對象)
2.
一般的html編輯器,是對上傳的對象(如圖片、文檔等)保存到伺服器臨時目錄,並在html代碼中保存html連接的方式
因此,向資料庫中寫html頁面實際上就相當於把html的文本保存到資料庫中,如果文本較大,
可以用中間變數做緩存(buffer)
⑷ HTML5的5種存儲方式詳解
引言
本篇文章主要介紹了前端HTML5幾種存儲方式的總結 ,主要包括本地存儲localstorage,本地存儲sessionstorage,離線緩存(application cache),Web SQL,IndexedDB。有興趣的可以了解一下。
正文開始~
h5之前,存儲主要是用cookies。cookies缺點有在請求頭上帶著數據,大小是4k之內。主Domain污染。
主要應用:購物車、客戶登錄
對於IE瀏覽器有UserData,大小是64k,只有IE瀏覽器支持。
目標
存儲方式:
以鍵值對(Key-Value)的方式存儲,永久存儲,永不失效,除非手動刪除。
大小:
每個域名5M
支持情況:
注意:IE9 localStorage不支持本地文件,需要將項目署到伺服器,才可以支持!
常用的API:
getItem //取記錄
setIten//設置記錄
removeItem//移除記錄
key//取key所對應的值
clear//清除記錄
存儲的內容:
數組,圖片,json,樣式,腳本。。。(只要是能序列化成字元串的內容都可以存儲)
HTML5 的本地存儲 API 中的 localStorage 與 sessionStorage 在使用方法上是相同的,區別在於 sessionStorage 在關閉頁面後即被清空,而 localStorage 則會一直保存。
本地緩存應用所需的文件
使用方法:
①配置manifest文件
頁面上:
Manifest 文件:
manifest 文件是簡單的文本文件,它告知瀏覽器被緩存的內容(以及不緩存的內容)。
manifest 文件可分為三個部分:
①CACHE MANIFEST - 在此標題下列出的文件將在首次下載後進行緩存
②NETWORK - 在此標題下列出的文件需要與伺服器的連接,且不會被緩存
③FALLBACK - 在此標題下列出的文件規定當頁面無法訪問時的回退頁面(比如 404 頁面)
完整demo:
伺服器上: manifest文件需要配置正確的MIME-type,即 "text/cache-manifest"。
如Tomcat:
常用API:
核心是applicationCache對象,有個status屬性,表示應用緩存的當前狀態:
0(UNCACHED) : 無緩存, 即沒有與頁面相關的應用緩存
1(IDLE) : 閑置,即應用緩存未得到更新
2 (CHECKING) : 檢查中,即正在下載描述文件並檢查更新
3 (DOWNLOADING) : 下載中,即應用緩存正在下載描述文件中指定的資源
4 (UPDATEREADY) : 更新完成,所有資源都已下載完畢
5 (IDLE) : 廢棄,即應用緩存的描述文件已經不存在了,因此頁面無法再訪問應用緩存
相關的事件:
表示應用緩存狀態的改變:
checking : 在瀏覽器為應用緩存查找更新時觸發
error : 在檢查更新或下載資源期間發送錯誤時觸發
noupdate : 在檢查描述文件發現文件無變化時觸發
downloading : 在開始下載應用緩存資源時觸發
progress:在文件下載應用緩存的過程中持續不斷地下載地觸發
updateready : 在頁面新的應用緩存下載完畢觸發
cached : 在應用緩存完整可用時觸發
Application Cache的三個優勢:
① 離線瀏覽
② 提升頁面載入速度
③ 降低伺服器壓力
注意事項:
1. 瀏覽器對緩存數據的容量限制可能不太一樣(某些瀏覽器設置的限制是每個站點 5MB)
2. 如果manifest文件,或者內部列舉的某一個文件不能正常下載,整個更新過程將視為失敗,瀏覽器繼續全部使用老的緩存
3. 引用manifest的html必須與manifest文件同源,在同一個域下
4. 瀏覽器會自動緩存引用manifest文件的HTML文件,這就導致如果改了HTML內容,也需要更新版本才能做到更新。
6. FALLBACK中的資源必須和manifest文件同源
7. 更新完版本後,必須刷新一次才會啟動新版本(會出現重刷一次頁面的情況),需要添加監聽版本事件。
8. 站點中的其他頁面即使沒有設置manifest屬性,請求的資源如果在緩存中也從緩存中訪問
9. 當manifest文件發生改變時,資源請求本身也會觸發更新
離線緩存與傳統瀏覽器緩存區別:
1. 離線緩存是針對整個應用,瀏覽器緩存是單個文件
2. 離線緩存斷網了還是可以打開頁面,瀏覽器緩存不行
3. 離線緩存可以主動通知瀏覽器更新資源
關系資料庫,通過SQL語句訪問
Web SQL 資料庫 API 並不是 HTML5 規范的一部分,但是它是一個獨立的規范,引入了一組使用 SQL 操作客戶端資料庫的 APIs。
支持情況:
Web SQL 資料庫可以在最新版的 Safari, Chrome 和 Opera 瀏覽器中工作。
核心方法:
①openDatabase: 這個方法使用現有的資料庫或者新建的資料庫創建一個資料庫對象。
②transaction: 這個方法讓我們能夠控制一個事務,以及基於這種情況執行提交或者回滾。
③executeSql: 這個方法用於執行實際的 SQL 查詢。
打開資料庫:
執行查詢操作:
插入數據:
讀取數據:
由這些操作可以看出,基本上都是用SQL語句進行資料庫的相關操作,如果你會MySQL的話,這個應該比較容易用。
索引資料庫 (IndexedDB) API(作為 HTML5 的一部分)對創建具有豐富本地存儲數據的數據密集型的離線 HTML5 Web 應用程序很有用。同時它還有助於本地緩存數據,使傳統在線 Web 應用程序(比如移動 Web 應用程序)能夠更快地運行和響應。
非同步API:
在IndexedDB大部分操作並不是我們常用的調用方法,返回結果的模式,而是請求——響應的模式,比如打開資料庫的操作
這樣,我們打開資料庫的時候,實質上返回了一個DB對象,而這個對象就在result中。由上圖可以看出,除了result之外。還有幾個重要的屬性就是onerror、onsuccess、onupgradeneeded(我們請求打開的資料庫的版本號和已經存在的資料庫版本號不一致的時候調用)。這就類似於我們的ajax請求那樣。我們發起了這個請求之後並不能確定它什麼時候才請求成功,所以需要在回調中處理一些邏輯。
關閉與刪除:
數據存儲:
indexedDB中沒有表的概念,而是objectStore,一個資料庫中可以包含多個objectStore,objectStore是一個靈活的數據結構,可以存放多種類型數據。也就是說一個objectStore相當於一張表,裡面存儲的每條數據和一個鍵相關聯。
我們可以使用每條記錄中的某個指定欄位作為鍵值(keyPath),也可以使用自動生成的遞增數字作為鍵值(keyGenerator),也可以不指定。選擇鍵的類型不同,objectStore可以存儲的數據結構也有差異。
學習從來不是一個人的事情,要有個相互監督的夥伴,想要學習或交流前端問題的小夥伴可以私信「學習」小明獲取web前端入門資料,一起學習,一起成長!
⑸ HTML怎麼保存文件到本地
繼續復制我之前的答案。
其實在瀏覽器裡面是不行的。因為瀏覽器為了安全並沒有給前端訪問本地資源的許可權,但是可以通過瀏覽器 API 下載的方式來將內容保存成本地 TXT 文件。
不過像這種不同瀏覽器有不同 API 的東西,自己太麻煩了,我曾經用過FileSaver.js這個庫來下載過在金山詞霸上的錯詞表,自己讀取表單內容在 js 里拼裝成你想要的樣子然後調用庫就行了,很方便。
官方實例:
varfile=newFile(["Hello,world!"],"helloworld.txt",{type:"text/plain;charset=utf-8"});
saveAs(file);
上面示例會保存 「Hello,world!」 到helloworld.txt 文件,你想要a.htm 就把第二個參數改成a.htm 就成。
補充一下可能完全的不需要的內容,關於如何獲取某元素的內容:
⑹ html頁面文本框里輸入的內容.獲取到後怎麼保存到本地資料庫中
用JAVA嗎,還是C#之類的?這個要看你用的什麼語言和框架了:
我只能簡單給你講一下實現的邏輯:
HTML頁面中輸入(或者計算等等方式得到)數據。
傳遞到controller中,controller中可以對數據進行處理。
controller將數據封裝到Modle中。
存入資料庫。
⑺ 如何向資料庫中存儲html數據
1. 資料庫中保存的HTML內容都是文本格式, 資料庫欄位如ORACLE選用VARCHAR2(2000)或CLOB(大對象)
2. 一般的HTML編輯器,是對上傳的對象(如圖片、文檔等)保存到伺服器臨時目錄,並在HTML代碼中保存HTML連接的方式
因此,向資料庫中寫HTML頁面實際上就相當於把HTML的文本保存到資料庫中,如果文本較大, 可以用中間變數做緩存(buffer)