7

私はまったくの初心者ですnode.js。node.js を使用してブラウザー パフォーマンス ツールを実装しようとしているので、次のコードがあります。

 for(var j=0; j < 14; j++) {
        // Create a new instance of HttpWatch in Firefox
        var control = new ActiveXObject('HttpWatch.Controller');
        var plugin = control.Firefox.New();
        // Start Recording HTTP traffic
        plugin.Log.EnableFilter(false);
        // Clear Cache and cookier before each test
        plugin.ClearCache();
        plugin.ClearAllCookies();   
        plugin.ClearSessionCookies();
        plugin.Record();
        // Goto to the URL and wait for the page to be loaded
        plugin.GotoURL(url);
        control.Wait(plugin, -1);
        // Stop recording HTTP
        plugin.Stop();
        if ( plugin.Log.Pages.Count != 0 )
        {           
           // Display summary statistics for page
           var summary = plugin.Log.Pages(0).Entries.Summary;
           //WScript.Echo( "Iteration number " + j + "for" + url + "   Total time to load page in (secs): " + summary.Time);
           cache[i].value.push(summary.Time);
        }
        // Close down Firefox
        plugin.CloseBrowser();
      }

httpwatchを使用して、データベースに保存されるパフォーマンス値を測定していMySQLます。ただし、実行すると:

node test.js

私は得る:

C:\xampp\htdocs\test\browser-perf>node test.js

C:\xampp\htdocs\test\browser-perf\test.js:37
                var control = new ActiveXObject('HttpWatch.Controller');
                                  ^
ReferenceError: ActiveXObject is not defined
    at Object.<anonymous> (C:\xampp\htdocs\test\browser-perf\test.
js:37:21)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

同様のオブジェクトを作成して、同じ望ましい結果を得るにはどうすればよいActiveXObjectですnode.jsか?

4

3 に答える 3

11

https://npmjs.org/package/win32ole

win32ole パッケージを試してインストールし、node.js コマンドを開き、次のように入力してパッケージをインストールします。

npm install win32ole

使用例:

var win32ole = require('win32ole');
var xl = win32ole.client.Dispatch('Excel.Application');
xl.Visible = true;

この投稿も参照してください: NodeJS での COM オブジェクトの使用

于 2013-07-31T03:46:53.337 に答える
1

私は node.js のユーザーではないので、node.js について具体的にコメントすることはできませんが、これActiveXObjectは Microsoft Active Scripting JScript エンジンの機能であり、IE9 の新しい Chakra エンジンでもあります。これは非常に Windows 固有であるためです。

于 2013-05-06T22:37:32.253 に答える
1

https://github.com/mynetx/codebird-js/issues/13のように、xhr2https://npmjs.org/package/xhr2使用してエミュレートできます。

npm install xhr2

ActiveXObjectそれがあなたのブラウザパフォーマンスツールで機能するかどうかはわかりませんが、少なくともエラーをグーグルで検索している他の誰かにとっては機能するはずです.

于 2013-06-25T14:37:44.207 に答える