.Net環境下運行JavaScript淺談 - 木是伊说

.Net環境下運行JavaScript淺談

WiseClock / 编程 / Nov 28, 2015

今天更新小玲的洛奇英雄傳功能的時候遇到了瓶頸。原本是直接用HeroesDB的API,但因為群裡人嫌棄,打算換成VindictusManual。這一換,問題來了……

下載了VindictusManual的js,包含了所有物品的生成與歸類。然後自己寫了個搜索和輸出的js,放進網頁運行了一下,效果很不錯。打算直接投入c#使用……

原本小玲的登入就用了騰訊WebQQ的js,代碼類似:

MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
sc.AllowUI = false;
sc.UseSafeSubset = true;
sc.Language = "JScript";
sc.AddCode(Resources.hash.ToString());

然而……AddCode一直報錯啊喂!!這MSScriptControl是IE6的js處理引擎吧?!太坑爹了……

後來幾經輾轉,換了Jurassic、Jint、IronJS等幾個處理引擎,但是效果都不太理想。特別是Jurassic,等了一分鐘才添加完js文件——不得不說輸出倒是挺正常的。IronJS則是根本沒法用……,倒是Jint是一個很棒的引擎,處理效率比Jurassic快了幾十倍不說,還支持將js的函數存至c#裡方便之後Invoke。不過說是說快了不少,實際上添加完VindictusManual的js還是用了好幾秒,有些耽誤事。

直到Javascript.Net的出現……真是大救星好嘛!!!處理任何腳本幾乎都只要2位數,毫秒!僅需要var engine = new Noesis.Javascript.JavascriptContext();就可以var obj = engine.Run("javascript code");運行任意js代碼嚕!

總之這玩意是神器……算是安利一發吧哈哈哈哈……

添加新评论 »