7.30.2009

JNDI Resources

之前用Spring習慣把一些設定檔(如db的url/username/password)寫在config.xml裡
再透過Spring把這些properties load進去
現在沒有Spring要開始改用JNDI
J2EE application server有JNDI
Tomcat則是實作JNDI(Java Naming and Directory Interface) InitialContext給web app
要寫JNDI resources要在$CATALINA_HOME/conf/server.xml這個檔寫
詳細內容JNDI Resources HOW-TO

7.17.2009

activated object

this represents the activated object
ex. this.id , this.className += "highlight"

if (cellIsEmpty(this)) {
// User clicked on an empty cell
alert("Please click on a numbered tile.");
return;
}

7.16.2009

scroll images


function scrollImages() {
var coverBarDiv = document.getElementById("coverBar");
var images = coverBarDiv.getElementsByTagName("img");
for (var i = 0; i < images.length; i++) {
var left = images[i].style.left.substr(0, images[i].style.left.length - 2);
if (left <= -86) {
left = 532;
}
images[i].style.left = (left - 1) + "px";
}
}

ajax request object

If you are making two independent ajax request, you have to create two independent ajax request object.

function checkA(){
var request = createRequest();
}

function checkB(){
var request = createRequest();
}

You might think you have created two independent request object. In fact, you only create one request object. This might make your system prone to error.

the better way

function checkA(){
var requestForA = createRequest();
}

function checkB(){
var requestForB = createRequest();
}

By removing "var", we can make the request object become a global variable and make sure each request only coping with one ajax request.

7.13.2009

javascript trim

//trim both side of space
function trim(str){
return str.replace(/(^\s*)|(\s*$)/g, "");
}
//trim left side of space
function ltrim(str){
return str.replace(/(^\s*)/g,"");
}
//trim right side of space
function rtrim(str){
return str.replace(/(\s*$)/g,"");
}
function trimEnter(str){
return str.replace(/\n\r/gi,"");
}