2011年9月15日 星期四

應用load函數載入共用的程式碼

對於經常共用的程式碼,撰寫成獨立的檔案後再提供給主程式載入呼叫,是再平常不過的作法(其實這也是必要的,重複程式碼的存在表示日後維護上的可怕夢靨)。
Rhino環境下是透過load()函數載入外部JavaScript程式碼,載入的語法可以採用絕對路徑與相對路徑的方式;這樣一來,可以考慮將共用的JavaScript程式碼統一放置在固定目錄下,採用絕對路徑的方式載入共用的程式碼。
雖然採用絕對路徑的方式可以達到共用程式碼只需要一份的目的,但在不同電腦上使用時,就必須建立該路徑(不然就是要修改程式碼內的路徑字串),若是再考量作業系統的差異,使用絕對路徑有時不見得是方便的方式。有鑑於此,我還是習慣使用相對路徑的方式,在「整合Portable Notepad++的Rhino執行環境」設計的批次檔中,就加入工作路徑切換,目的就是方便load()函數使用相對路徑指定共用的JavaScript程式碼。只是這樣一來,變成在每個設計工作的目錄下都必須複製乙份這些共用的程式碼;而且當共用的JavaScript程式碼有修改時,如何維持這些共用JavaScript程式碼保持一至也是一個需要留意的問題。
廢話寫完了,接下來以「指定Rhino環境的DOS視窗編碼格式」該文的程式碼,將Console視窗輸出的編碼格式獨立至InitialEnv.js檔案,再應用load()函數載入此檔案。InitialEnv.js檔案的程式碼如下:
InitialEnv.js檔案的程式碼如下:
/**
 *
 * 初始執行環境之相關設定。
 *
 * @author ace
 *
 * @version 2011/08/22 v0.1
 *
 * @see
 * 
 * @description
 *
 */

// 設定console輸出資料為Big5編碼格式。 
java.lang.System.setOut(new java.io.PrintStream(java.lang.System.out, true, "BIG5"));
原程式碼修改後如下:
/**
 *
 * Rhino字元編碼。
 *
 * @author ace
 *
 * @version 2011/09/03 v0.1
 *
 * @see <a href="http://www.mozilla.org/rhino/ScriptingJava.html">Scripting Java</a>
 * @see <a href="https://developer.mozilla.org/en/Scripting_Java">Scripting Java</a>
 * @see <a href="https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch">try...catch</a>
 * @see <a href="http://www.javascriptkit.com/javatutors/trycatch.shtml">Handling runtime errors in JavaScript using try/catch/finally</a>
 *
 * @see <a href="http://caterpillar.onlyfun.net/Gossip/Encoding/UnicodeUTF.html">Unicode 與 UTF</a>
 * @see <a href="http://caterpillar.onlyfun.net/Gossip/Encoding/UTF8.html">UTF-8</a>
 *
 * @description
 *
 */
 
// 使用load()函數載入InitialEnv.js檔案。
load("js/rhino/InitialEnv.js");
 
try {
    // 開始執行程式
    print("Rhino script start running...");
    print("顯示測試資料!");
    print("阿堃!");
}
catch (e) {
    print("執行過程有誤,錯誤訊息:" + e.description);
}
finally {
}
執行畫面如下:
這樣就完成載入InitialEnv.js檔案並執行!!

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...