最近實作記錄讓ajax執行後能記錄行為到瀏覽器的上下頁按鈕,
因而選擇了$.address plugin。
原本運作上蠻正常的,不過在Firefox上面快速的連按上或下一頁按鈕時,會造成整個ui畫出來不對的現在。
因為firefox ajax request順序時間差不一致造成,因此在URL Change Event加入Queue即可解決。
$.address.externalChange(function(event){
// $.console("[address externalChange] event value:" + event.value);
var controller = event.pathNames[0];
var parameter = event.pathNames[1];
if(!isNullOrUndefiend(controller)){
// $.console("[address externalChange] Trigger currentFolder:" + currentFolder);
//2012/07/19
//When click back button quickly on firefox,
//must use queue to avoid duplicated data binding
$(this).queue(function(){
addressEventHandler(controller,parameter);
$(this).dequeue();
});
}else{
$.console("[address externalChange] Controller not found");
}
});
Tip:有時候外掛會無法取得externalChange event.value的值,目前還沒找出正確原因。目前直接用變更外部連結的方法處理。
window.location.href = "yourpage.jsp#ControllerName/ + "Parameters";
沒有留言:
張貼留言
留個話吧:)