網頁post自動產生iframe

大部份在寫網頁要上傳檔案時都需要使用到iframe做一個中繼,
可是如果response一個錯誤訊息時,前一個iframe資料就會變成history,
在控制上,像重新整理等時,就會遇到暫存資料的問題,以下有一個方法,
可以在檢查完所有form條件時才自動createiFrame做post動作,
而重新整理時(或第一次進入此畫面時)又不會真實存在,來解決暫存的問題。

function createIFrame(){
if(!document.getElementById(『_hiddenframe』))
{
var frame = document.createElement(『iframe』);
frame.setAttribute(『name』,『_hiddenframe1″);
frame.setAttribute(『src』,『about:blank』);
frame.setAttribute(『frameborder』,『0″);
frame.setAttribute(『height』,『0″);
frame.setAttribute(『width』,『0″);
frame.setAttribute(『id』,『_hiddenframe』);
frame.name = 『_hiddenframe』;
document.body.appendChild(frame);
window.frames._hiddenframe.name = 『_hiddenframe』;
document.getElementsByTagName(『body』)[0].appendChild(frame);

}
}

JavaScript Source Compression Obfuscators

Google Closure Complier
Google提供API讓用戶端可以直接撰寫自己的程式來壓縮及擾亂JavaScript Source,而以下是它提供UI介面,可以直接Add a URL,就可以輸出Complier後的Script Code,畫面如下:
Labs網址:http://code.google.com/intl/zh-TW/closure/compiler/docs/gettingstarted_ui.html
UI網址: http://closure-compiler.appspot.com/home

Yahoo YUI Compressor
Yahoo在很早以前就提供JavaScript及css的Compressor及Obfuscators,而它本身並沒有UI介面,只能直接使用java command來執行java –jar yuicompressor-x-y-z.jar 。
官方網站:http://developer.yahoo.com/yui/compressor/
測試
實際用prototype.js這個script來壓縮,結果如下:
原始檔大小約124,136位元組
Google Closure Complier執行過後約71,280位元組
Yahoo YUI Compressor執行過後約72,612位元組
以上的設定值均為一般設定
每萬次展示節省成本約50Mb(以Google Cosure Complier為例)

[javascript]特效accordion

這裡介紹幾個Accordion特效
1. jquery版本
網址
裡面有很詳細的說明及修改方法,很順暢,不過css有點小多,比較不好改

2. prototype 版本

Board討論區(1)

規畫會以下面幾個重點完成
概念 1.資料展示 包含 留言者名稱-有提供網站連結時,使用link 留言內容-remove Html Tag 留言時間
2.資料新增 包含 留言者名稱-必填 部落格連結-有連結時,必須包含. 留言者Mail-有填寫時,必須包含.及@ 留言內容 認證碼-提供重新取得認證碼功能
3.資料表格 包含 編號-autoEnCode [...]

[Android]如何發佈開發好的程式至手機

自己寫好了一隻程式,在模擬器上Emulator的方式可以參考
[教學]Android的第一個程式
如果要在實際的手機上執行要怎麼做呢?
1.設定手機USB Debug mode 啟動,並連接usb至手機
按Menu鍵進入”設定”畫面->應用程式->開發(未知的來源要打勾)->USB除錯中 打勾

2.設定Eclipse Run Configurtions

Apache Roller Java WebBlog 安裝簡介 at GlashFish

1.簡介
Apache Roller 是一套Java的WebBlog framework
官網
Apache Roller
它支援市面上大部份的資料庫(oracle、MSSQL、mysql、javadb、apache Derby,PostgresSQL…)
Java application Server部份只要可以使用Servlet 2.4 API的Container都可以(resin、Tomcat 5.5 up、Glashfish 2.0 up…)
Jdk部份則需要1.5 up ,如果是使用Roller 3.x則可以使用Java 1.4.2版本
2.事前準備
需要先安裝一個java Servlert Continaer Web Server,在這裡使用GlashFish 2.x做範例,
而資料庫部份,則是使用MySQL,
以上這二部份需要先自行安裝及設定完成
另外需要準備MySQL的JDBC Driver及JavaMail所需的jar檔
mysql-connector-java-x.x.x-bin.jar
activation.jar
mail.jar
ps.Apache Roller支援i18n多國語系,為了讓URI支援i18n,所以在Tomcat下請設定/conf/server.xml
<Connector port=』8080″
maxThreads=』150″ minSpareThreads=』25″ maxSpareThreads=』75″
enableLookups=』false』 redirectPort=』8443″ debug=』0″
acceptCount=』100″ connectionTimeout=』20000″
disableUploadTimeout=』true』
URIEncoding=』UTF-8″ />
3.開始安裝
一、下載Roller
http://roller.apache.org/download.cgi#roller40
Roller Web Application 4.0.1.zip
二、再來要建立安裝用的WAR檔

[jsp小技巧]利用Throw Exception來完成Ajax

一般在寫Ajax時,最直覺的使用方法就是利用Ajax Object來要求Server給與回應,
再依回應的內容解西倒底是完成動作?還是有錯誤產生,如必填欄位未填。
這裡介紹一個小技巧,在編譯式的網頁伺服器語言可能比較合適使用。
大概的原理是利用程式在執行有錯誤時Throw Exception來當做錯誤訊息,
回傳給client,而client只要接收到503的錯誤,則就可以知道動作並未完成,
反之則是完成。
範例使用prototype來使用Ajax,傳送及回應,有需要可以參考:
Ajax 使用prototype.js 1
以下是載行結果,當有填值時,則回應填寫的值,
沒填值的時候就回傳錯誤訊息。(Exception)

Java利用Imagick來ReSize圖片檔-使用JMagick

程式很簡單
只需要在利用command在程式目錄下執行
java -jar ReSizeImage.jar
就可以啦!
預設是縮成以寬為500px基準
如果要改變寬可以利用
java -jar ReSizeImage.jar 數字
縮完的圖會放到程式目錄的resize目錄裡
我Blog都是以500寬為基準,我想應該夠用了吧^^
程式目錄結構
ReSizeImage.jar
jmagick.dll
lib/Jmagick.jar
記得要先下載Imagick來安裝才能使用喔
按裝方法如下:
JMagick-Java open source free影像壓縮
原始碼如下:

[JAVA]利用Jmagick(ImageMagick)來取得圖片的長寬

一般Java要取得圖片的長寬size大部份的人,也是最簡單的方法,
就是使用java.awt.image.BufferedImage來取得,不過有時JVM在釋放記憶體來不及時,很容易會出Exception
這時候可以利用Jmagick來取得,它會呼叫外部的ImageMagick 的dll來取得長寬,
以下就是原始碼:
import magick.ImageInfo; import magick.MagickException; import magick.MagickImage; import java.awt.Dimension;

[程式分享]使用Eclipse的Visual Editor撰寫的時鐘 、倒數、計時器

想法
用一個JFrame裡面放三個Tab panel分別為
時間、計時、倒數
利用三個Thread控制以上三件事
1時間
取得一個Calendar.getInstance() 得到 時、分、秒
然後在Thread的Run裡每一秒加一
2計時
”開始”利用一個Runnable從0時0分0秒一直累加
”結束”把Runnable解除掉(run直接結束)
”清除”設時、分、秒為0
3倒數
需三個TextField控制設定初始之時、分、秒
”開始”利用一個Runnable初始值一直減少到0
”結束”把Runnable解除掉(run直接結束)
會有的問題
1.    利用Sleep控制會因為電腦的處理其它判斷快慢而影響其正確性
2.    倒數之設定初始值可用除制只輸入數字及判斷輸入值之正確性來避免Exception
3.    計時及倒數,初始時並沒有顯示於畫面上
以下是程式碼及包裝好的jar檔,有興趣的可以下載看看
展畫面如下