在實作AJAX非同步資料傳輸時,在IE瀏覽器上遇到非常大的問題,他會 cache 先前GET取回的資料,只有第一次 request 時會真正的去 server 讀取資料,導致畫面上的資料不會被更新,這在firefox及chrome是不會發生的。
解決方法有三個:
1. 針對 url 加上亂數參數,例如 var url = "...?date=" + new Date().getTime();
如此瀏覽器會認為這次查詢的內容與上次不同,IE也會再發送請求(並再做一次cache)
當然缺點就是 IE 會幫你做非常多的 cache,不算個好作法就是。
2.改用POST做 request。
3.阻止IE做 cache
var request= new XMLHttpRequest();
request.setRequestHeader("If-Modified-Since","0");
又或者是依各語言的寫法直接寫Meta
例如JSP頁面上增加 response.addHeader("Cache-Control", "no-cache");
推薦使用 If-Modified-Since 的作法
Ajax增加這個header後,會主動判斷要查詢的頁面的最後更新時間是否有變動
如果沒有就回傳304告知 local 端的cache已經是最新的,request會直接從local端載入
這個做法可以減少網路傳輸的需求量。
參考資料:
1. http://pvencs.blogspot.tw/2013/01/ie-ajax-cache.html
2.http://gdfan1114.wordpress.com/2005/12/20/ajax-ie-%E6%9C%83-cache-%E4%BD%8F%E5%9B%9E%E5%82%B3%E7%9A%84%E7%B5%90%E6%9E%9C/
2013年5月4日 星期六
2013年4月28日 星期日
Google API 取得 jquery 的 libraries
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
google.load("jquery", "2.0.0");
</script>
可手動更換jquery的版本
google.load("jquery", "2.0.0");
google api會載入以下lib
path: https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
path(u): https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js
如需UI的部份如下:
google.load("jqueryui", "1.10.2");
進入下面的連結,有更多資訊
http://code.google.com/intl/zh-TW/apis/libraries/devguide.html
MySql設定成UTF-8
目前MYSQL已經是免安裝版,到網站下載致電腦後,解壓縮至放置位置(C:\mysql-5.6.10-winx64),找到C:\mysql-5.6.10-winx64目錄下找到my-default.ini檔,先複製一份備份,然後將my-default.ini改名為my.ini,如果沒改名,所修改的設定將不會生效,接下來進入設定檔。
找到[client]區塊:
[client]
default-character-set=utf8 //加上此行
找到[mysqld]區塊:
[mysqld]
character_set_server=utf8 //加上此行
collation-server=utf8_general_ci //加上此行
注意:在設定檔中[client]區塊位置一定要比[mysqld]前面,否則您執行mysql.exe檔將會閃一下就不見,不能進入mysql 命令列。
2013年4月7日 星期日
MySql 匯出、匯入資料
原本是使用phpmyadmin管理MySql資料庫,後來因開發jsp,所以換別的管理工具,但發現這之間的格式大不同,匯出的資料無法互轉,造成很大的困惱,經過幾番搜尋,發現MySql自己本身就有匯出匯入的功能。
不論在 Windows 或是 Linux 的環境下,都可以很順利的將某個資料庫內容作匯出及匯入。
範例: MySQL 資料庫的帳號為 root,密碼為 123,資料庫為 myDb。
匯出
/mysql/bin --opt -uroot -p123 myDb > myDb.sql
‧匯入
/mysql/bin -uroot -p123 myDb < myDb.sql
PS:一定要將路徑指向【bin】資料夾。
不論在 Windows 或是 Linux 的環境下,都可以很順利的將某個資料庫內容作匯出及匯入。
範例: MySQL 資料庫的帳號為 root,密碼為 123,資料庫為 myDb。
匯出
/mysql/bin --opt -uroot -p123 myDb > myDb.sql
‧匯入
/mysql/bin -uroot -p123 myDb < myDb.sql
PS:一定要將路徑指向【bin】資料夾。
2013年3月18日 星期一
定義網頁的支援語系
定義網頁的支援語系為UTF-8。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
Domino Server :DominoCompleteDocType
Domino Server中預設DocType為【<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">】,可以透過修改notes.ini裡的DominoCompleteDocType來變更設定。
0 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
在Domino 7.02後可以利用欄位【$$HTMLFrontMatter】來指定DocType。
0 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
1 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
在Domino 7.02後可以利用欄位【$$HTMLFrontMatter】來指定DocType。
2013年3月16日 星期六
訂閱:
文章 (Atom)