偷空玩Solr,當然照著 Solr Tutorial跑一次,瞭解一下它有那些features,以及熟悉一下它的界面
然後開始要做些正事了,得把之前測試的資料清掉,拜了一下Google,找到了幾種方法,可是怎麼有些是無效或有問題的
最後用了這個,解決!記錄下來,也許未來用得到
http://192.168.10.66:8983/solr/update?commit=true&stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E
2013/11/19
2013/11/15
SVG裡的以title來顯示tooltip
很多人都會使用HTML tag裡的title attribute來顯示tooltip
今天有一個新需求,要用tooltip來顯示動態的資料,找到server的資料來源,加點code好讓這資料能透過AJAX傳回browser端,再餵進title attribute中,打開FireFox測試,good,正確!收工!
在deploy到正式機前,心血來潮,打開Chrome再試一下
咦,怎麼沒出來?是JavaScript給cache住了嗎?清掉cache,還是一樣。不信邪,再開Opera, IE 9/10,都出不來。這就怪了,在最不會出錯的地方竟然有錯!
仔細思考一下,今天這個是SVG,難道問題在這裡?Google一下,果然已經很多前輩踩著這條足跡死在沙灘上了,真的就只有Firefox可以,其他的browsers有問題
有問題就解決吧
找了一下,是有不少tooltip framework可以用,不過我只是想show簡單的資料,不用太美觀,也不想動用太大的framework
後來找到這一篇,簡單明瞭,瞭解了它的工作原理,把概念套進我的頁面,再調調位置顏色,deploy到正式機也確定OK!收工!
今天有一個新需求,要用tooltip來顯示動態的資料,找到server的資料來源,加點code好讓這資料能透過AJAX傳回browser端,再餵進title attribute中,打開FireFox測試,good,正確!收工!
在deploy到正式機前,心血來潮,打開Chrome再試一下
咦,怎麼沒出來?是JavaScript給cache住了嗎?清掉cache,還是一樣。不信邪,再開Opera, IE 9/10,都出不來。這就怪了,在最不會出錯的地方竟然有錯!
仔細思考一下,今天這個是SVG,難道問題在這裡?Google一下,果然已經很多前輩踩著這條足跡死在沙灘上了,真的就只有Firefox可以,其他的browsers有問題
有問題就解決吧
找了一下,是有不少tooltip framework可以用,不過我只是想show簡單的資料,不用太美觀,也不想動用太大的framework
後來找到這一篇,簡單明瞭,瞭解了它的工作原理,把概念套進我的頁面,再調調位置顏色,deploy到正式機也確定OK!收工!
2013/11/06
Ubuntu 12.04 on ThinkPad R51e 挑硬碟?
為了建開發環境,找了一台ThinkPad R51e來當測試主機
原來的硬碟是XP,我需要Ubuntu,找好從家裡找來一顆2.5" IDE的硬碟
Hitachi Travelstar 40G
灌了好幾次都失敗,每次都卡在file system error, can't create partition這樣的錯誤
找了很多資料,有說是硬碟壞了
可是用Ubuntu Live CD的check disc for defects查也沒問題
用外接盒接回windows系統也都能正常使用
後來找到一些說是Ubuntu不能灌在不支援PAE(Physical Address Extension)的CPU上,要改用Lubuntu或Xubuntu之類的
下載了Lubuntu 12.04(最後支援non-PAE的版本)來安裝,還是一樣的問題
回家,東翻西找了一番,又找到了一顆Fujitsu 的40G老硬碟
果然一次就OK
看來還真的會挑硬碟,不過這樣就浪費掉一天了
原來的硬碟是XP,我需要Ubuntu,找好從家裡找來一顆2.5" IDE的硬碟
Hitachi Travelstar 40G
灌了好幾次都失敗,每次都卡在file system error, can't create partition這樣的錯誤
找了很多資料,有說是硬碟壞了
可是用Ubuntu Live CD的check disc for defects查也沒問題
用外接盒接回windows系統也都能正常使用
後來找到一些說是Ubuntu不能灌在不支援PAE(Physical Address Extension)的CPU上,要改用Lubuntu或Xubuntu之類的
下載了Lubuntu 12.04(最後支援non-PAE的版本)來安裝,還是一樣的問題
回家,東翻西找了一番,又找到了一顆Fujitsu 的40G老硬碟
果然一次就OK
看來還真的會挑硬碟,不過這樣就浪費掉一天了
2013/10/17
避免AJAX的結果被cached
動態網頁如果被cached住,就無法取得即時的資訊
如果AJAX的資料被cached,那也是一樣
你用jQuery寫AJAX嗎?記得加上下面這行,就可以避免被cached了
如果AJAX的資料被cached,那也是一樣
你用jQuery寫AJAX嗎?記得加上下面這行,就可以避免被cached了
$.ajaxSetup({ cache: false });
2013/10/16
HTTP compression for Jetty
HTTP compression可以將web server在將資料傳回browser前,先進行壓縮;browser收到壓縮後的資料後,先做解壓縮後再呈現出來。這好處是可以減少傳遞的資料量,讓網路的傳輸速度加快,而缺點則是要耗用兩端的CPU資源來進行壓縮。
當然,web server並不是隨意進行壓縮,必須視browser有支援何種解壓縮功能,才用合適的壓縮方法進行壓縮。一般browser在送出request時:
在Accept-Encoding這個header parameter中,就描述了browser可以處理的解壓縮方法。Web server則會視雙方都有支援的壓縮方法來進行壓縮。
目前市面上的browsers與web servers多已經支援HTTP compression的功能(HTTP compression測試工具)。一般web server並未開啟compression的功能,這裡以 Jetty 8/9來說明如何開啟這項功能。
首先找到web.xml,然後加入下列這段code:
這段設定是使用Jetty中所附的GzipFilter,可支援gzip與deflate的壓縮。
在init-param中定義了有那些MIME types是需要被壓縮的。一般而言,圖片、音樂(mp3...)、PDF等等都已經是經過壓縮的,所以並不建議再列入。
而在 url-pattern中則是定義了那個目錄要被壓縮,這裡設定整個網站目錄都列入範圍。
那要怎麼知道傳回來的是不是壓縮的格式。
可以打開browser的開發者工具,看看response headers的Content-Encoding是否為gzip等的壓縮方式。
當然,web server並不是隨意進行壓縮,必須視browser有支援何種解壓縮功能,才用合適的壓縮方法進行壓縮。一般browser在送出request時:
GET /the-page HTTP/1.1
Host: www.the-web-site.com
Accept-Encoding: gzip, deflate
在Accept-Encoding這個header parameter中,就描述了browser可以處理的解壓縮方法。Web server則會視雙方都有支援的壓縮方法來進行壓縮。
目前市面上的browsers與web servers多已經支援HTTP compression的功能(HTTP compression測試工具)。一般web server並未開啟compression的功能,這裡以 Jetty 8/9來說明如何開啟這項功能。
首先找到web.xml,然後加入下列這段code:
<filter></filter>
<filter-name>GzipFilter</filter-name>
<filter-class>org.eclipse.jetty.servlets.GzipFilter</filter-class>
<init-param></init-param>
<param-name>mimeTypes</param-name>
<param-value>text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,application/x-javascript,application/json,image/svg+xml</param-value>
<filter-mapping></filter-mapping>
<filter-name>GzipFilter</filter-name>
<url-pattern>/*</url-pattern>
這段設定是使用Jetty中所附的GzipFilter,可支援gzip與deflate的壓縮。
在init-param中定義了有那些MIME types是需要被壓縮的。一般而言,圖片、音樂(mp3...)、PDF等等都已經是經過壓縮的,所以並不建議再列入。
而在 url-pattern中則是定義了那個目錄要被壓縮,這裡設定整個網站目錄都列入範圍。
那要怎麼知道傳回來的是不是壓縮的格式。
可以打開browser的開發者工具,看看response headers的Content-Encoding是否為gzip等的壓縮方式。
後記:個人的測試,在Jetty 8上,好像request method只能用GET,如果用POST,則回傳資料不會壓縮。在一些文件中並沒有看到說POST的response不會壓縮。就不知是Jetty的因素?還是規格有這樣的限制了。等有空時再來研究這問題了。
訂閱:
文章 (Atom)