localStorage儲存代替GET方式
做久了前端開發就會知道,有時候需要把頁面A的資料傳到頁面B上,用URL引數的形式會顯得累贅。而且瀏覽器和伺服器對於URL的長度也有所限制。
瀏覽器
1、IE
IE瀏覽器(Microsoft Internet Explorer) 對url長度限制是2083(2K+53),超過這個限制,則自動截斷(若是form提交則提交按鈕不起作用)。
2、firefox
firefox(火狐瀏覽器)的url長度限制為 65 536字元,但實際上有效的URL最大長度不少於100,000個字元。
3、chrome
chrome(谷歌)的url長度限制超過8182個字元返回本文開頭時列出的錯誤。
4、Safari
Safari的url長度限制至少為 80 000 字元。
5、Opera
Opera 瀏覽器的url長度限制為190 000 字元。Opera 9 位址列中輸入190 000字元時依然能正常編輯。
伺服器
1、Apache
Apache能接受url長度限制為8 192 字元
2、IIS
Microsoft Internet Information Server(IIS)能接受url長度限制為16 384個字元。
這個是可以通過修改的(IIS7)
configuration/system.webServer/security/requestFiltering/[email protected]
3、Perl HTTP::Daemon
Perl HTTP::Daemon 至少可以接受url長度限制為8000字元。Perl HTTP::Daemon中限制HTTP request headers的總長度不超過16 384位元組(不包括post,file uploads等)。但當url超過8000字元時會返回413錯誤。
這個限制可以被修改,在Daemon.pm查詢16×1024並更改成更大的值。
4、ngnix
可以通過修改配置來改變url請求串的url長度限制。
client_header_buffer_size 預設值:client_header_buffer_size 1k
large_client_header_buffers預設值 :large_client_header_buffers 4 4k/8k
由於jsonp跨域請求只能通過get請求,url長度根據瀏覽器及伺服器的不同而有不同限制。
若要支援IE的話,url長度限制為2083字元,若是中文字元的話只有2083/9=231個字元。
若是Chrome瀏覽器支援的最大中文字元只有8182/9=909個。
既然對URL的長度有諸多的限制,那麼為何不選用一種更“爽”的方式呢?
沒錯,就是LocalStorage
localStorageAPI跟sessionStorageAPI一樣,參考API
這裡提一下如果你的資料是Object或者Array時,為了能夠在頁面B能正常拿到所需要的資料,那麼先轉為字串,然後在頁面B再轉回Object或者Array吧!
轉為JSON字串
localStorage.setItem('paramData', JSON.stringify(paramData));
轉為JSON格式資料
JSON.parse(localStorage.getItem('paramData'));
用過localStorage會發現不會再想用GET拼接的方式了!實感!