2013年3月20日 星期三

避免require js被browser cache

在使用RequireJS的Project上,若要讓所相依的JS每次都要讀取最新檔案
不被Cache,可以在Main.js的config內加入參數
urlArgs: "ver="+new Date().getTime()
則內部所有相依性的js檔案都會被統一在載入路徑後加入一個動態參數避免被Cache

而若要讓Main.js不被Cache則需在載入main之前
先加入一段
var require = {
  urlArgs : "v="+new Date().getTime()
};

Backbone.js model執行fetch可設定的options參數

Backbone的model在做fetch取資料
可以另外傳入options 選項
options是一個物件
可包含的設定值
就是jQuey ajax的設定值
都可以用

2013年3月12日 星期二

Elicpse minified js Error

使用Elicpse Build PhoneGap Project
assets內的js檔案若是經過minified處理過
會觸發error的錯誤而無法build
可透過以下設定去除不必要的Error讓Project可以繼續
1.在Project上開啟Property
2.Project Properties > JavaScript > Include Path > Source
3.選擇Excludsion/Edit
4.選擇要排除的目錄或檔案

2013年3月1日 星期五

BackboneJs Collection Sort 排序

BackboneJs Collection 排序
在Backbone若需要用到排序功能
使用Collection來對資料排序,速度會比自己另外寫演算法還要快很多
注意事項
1.資料需儲存在Collection內的models
2.設定comparator
建議使用underscore的sortBy方式來設定comparator
sortBy的設定方式是
所設定的funcion會有一個model物件,要依照model物件的哪個屬性做排序
就回傳那個要比較的值就可以了
如果要做多種不同屬性的sort
可由外部設定一個sortType帶入,依照sortType切換即可

@collection.comparator=(_model)=>
  switch @sortType
    when 'name'
      _model.get('songName')
    when 'artist'
      _model.get('artistName')
    when 'album'
      _model.get('albumName')    
3.設定監聽 當排序完成會被觸發

@collection.comparator=(_model)=>
  switch @sortType
    when 'name'
      _model.get('songName')
    when 'artist'
      _model.get('artistName')
    when 'album'
      _model.get('albumName')    
4.執行排序
@collection.sort()