問題タブ [jurassic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - Jurassic の使用時に JS エラーの場所を取得する
私はJurassic JS エンジンを使用して、.NET アプリケーションでいくつかの JS コードを実行しています。残念ながら、コードを実行すると、未定義の値が原因で例外が発生します。しかし、どうすれば正確な場所を見つけることができますか? .NET からエクスポートされたメソッドを使用しているため、別の環境では実行できないことに注意してください。実行時エラーの場所を取得する方法を見つけたいと思います。
クラスを使用してファイルをロード/評価してScriptSource
いるため、ファイル名が添付されています。それでも、事後分析の出力が得られません。何か不足していますか?
javascript - DOM をロードし、サーバー側で .Net を使用して JavaScript を実行する
ドキュメント (文字列形式) または URL を使用して DOM をロードし、それに対して JavaScript 関数 (jquery セレクターを含む) を実行したいと考えています。これは完全にサーバー側であり、進行中です。クライアント/ブラウザーはありません。
基本的に、DOM をロードしてから、jquery セレクターと text() & type val() 関数を使用してそこから文字列を抽出する必要があります。私は本当にdomを操作する必要はありません。
I have looked at .Net javascript engines such as Jurassic and Jint, but neither support loading a DOM, and so therefore can't do what I need.
I would be willing to consider non .Net solutions (node.js, ruby, etc) if they exist, but would really prefer .Net.
edit The below is a good answer, but currently I'm trying a different route, I'm attempting to port envjs to jurassic. If I can get that working I think it will do what I want, stay tuned....
.net - 外部ライブラリ、特にジュラシックでメソッドを実行しているときに、別のスレッドを生成/スリープ/スロットルすることは可能ですか?
Jurassicと呼ばれる .Net JavaScript 実装を使用して、VB.Net でコーディングされた .Net 4 WPF アプリケーション内でユーザー制御のスクリプトを実行しています - C# の回答は問題ありません。スクリプト エンジンは独自のスレッドで実行され、スクリプトがアプリケーションと対話するための API を提供します。これはすべて、ユーザーがスクリプトを実行して無限ループを引き起こし、プロセッサのコアを取り出すまで、非常にうまく機能します。
スレッド内で実行されるメソッドは次のようになりますが、関連のない部分が多くなります。
私は別のスレッドに監視クラスを用意しています。このクラスは、スクリプト エンジン スレッドがスリープ状態から復帰するタイミングを記録し、実行時間が長すぎるスレッドにフラグを立てることで、大量のリソースを使用しているスクリプト エンジン スレッドを検出します。
監視クラスによってスレッドにフラグが立てられると、ちょっと立ち往生します。現在、ユーザーに状況を説明し、スレッドを終了するオプションを提供しています。私は Thread.Abort() を使用してこれを行います。ただし、スレッドが実行され続けることを許可したいのですが、どうにかして、スレッドがそれほど多くのプロセッサ時間を使用しないようにします。
ここでの問題は、Jurassic コード内の CallGlobalFunction() メソッド内で無限ループが発生しているため、スレッドがこの状態になるとコードを実行できないことです。ループに Thread.Yield() を追加することはできません。ジュラ紀のコードをハッキングして、できる方法がないかどうかを簡単に検討しましたが、それは非常に困難であり、おそらく不可能です.
これまでにスレッドと対話できた唯一の方法は、上記の Thread.Abort() と非推奨の Thread.Suspend() を使用することです。
メソッドの実行中にスレッドを生成する方法はありますか、それとも強制終了する必要がありますか?
助けてくれてありがとう。これが理にかなっていることを願っています、
サム。
追加情報:
スレッドを維持することに関心があるのは、スクリプトを作成したユーザーとそれを実行しているユーザーが同じではない可能性があるためです。スレッドを実行しているユーザーのエクスペリエンスをできるだけスムーズに保ちたいと考えています。 . また、1 つの JavaScript 関数が長時間実行される正当な状況もあるかもしれませんが、それを停止したくはありません。リソースを独り占めするのをやめたいだけです。
アプリケーションがリソースを集中的に使用しているとユーザーに誤解させたくないため、スレッドを停止してシステムの速度を低下させないようにするソリューションは、依然として高い CPU 使用率を示しているため、好ましくありません。
javascript - JavaScriptコンパイラ(Jurassic、ClearScriptなど)をVisualStudio2010シェルに統合する方法
JurassicやClearScript、またはその他の.net用のオープンソースJavaスクリプトコンパイラからVisualStudio2010分離シェルへのJavaScriptデバッグをサポートする必要があるプロジェクトがあります。私の要件は、F5、F10を使用してブレークポイントを設定し、カスタムJavaスクリプトコードをデバッグできるようにすることです。ネットロットを検索しましたが、有用なものは見つかりませんでした:-(。IronPthyon分離シェルプロジェクトをダウンロードしましたが、非常に複雑に見え、すでに実装されているコンパイラ(jurassicまたはclearscript)を分離シェルに統合したいだけです。
よろしくお願いします。
javascript - wp7 と wp8 でジュラシック (js エンジン) を実行する方法
Windows 8では問題なく動作しますが、Windows Phone 7とWindows Phone 8ではコンパイルされません...
どんなアイデアでも、私は(サイトのコメントから)wp7とwp8で動作することを知っていますが、どのように理解していませんか?
ありがとう
javascript - Web ページ内で実行されない Javascript ファイルに jQuery を含める
Javascript を使用して、C#.NET アプリケーションによって呼び出されるスタンドアロン スクリプトを作成しています。ブラウザ内では実行されず、代わりにジュラシック エンジンが使用されます。
このスクリプトで jQuery を使用できるようにしたいと考えています。通常は HTML<script>
タグを使用して jQuery を参照しますが、jQuery ファイルをスタンドアロンの Javascript ファイルに含めるにはどうすればよいでしょうか。
PHPのinclude()
機能を考えています。
javascript - Jurassic を使用して JsRender テンプレート サーバー側をプリコンパイルする
JsRender を実行するためにジュラシック スクリプト エンジンを使用して、C# で記述されたクラス ライブラリから JsRender テンプレートをプリコンパイルしようとしています。
これが私のコードです:
このページ$.templates()
からJavaScript 関数呼び出し を取得しました。
$.templates(markupOrSelector) の戻り値: コンパイルされたテンプレート オブジェクト
そして、私のサンプル HTML テンプレートは単純です
ただし、私のコードでは例外が発生します。
ここで、jQuery が存在しなくても $ 演算子を使用できるかどうかは 100% 明確ではありません。著者は、いくつかの例に jQuery を含めていますが、jQuery は必須ではないとも述べています。
それで、何がうまくいかないのですか?この質問を投稿した同じ日に GitHub から取得した JsRender のバージョンのドキュメントは古くなっていますか? (JsRender がまだベータ版であることは承知しています。) それとも、ジュラシックを誤用しているのでしょうか?
編集:
これは実際には JsRender の質問というよりジュラ紀の質問だと思います。具体的には、これは Jurassic のグローバル オブジェクトに関連していると思います。JsRender は を渡す即時呼び出し関数にラップされておりthis
、Jurassic が提供するかどうかはわかりませんthis
。
この質問に直面したのは私が初めてではないようです。このページの最後の投稿からアドバイスを受けて、コードを次のように変更しました。
これはうまくいきませんでした - おそらく JsRender の IIF がthis
代わりに渡さwindow
れ、スクリプトを変更したくないためです。
誰でもこれを前進させるのを助けることができますか? ジュラシックを考えると、ジュラシックからJsRender関数を呼び出すにはどうすればよいですか...わかりません...おそらく、ジュラシックがグローバルオブジェクトを実装する方法にいくつかの概念的な違いがあります。
javascript - ジュラシック ライブラリを使用して js 変数を c# 文字列に割り当てることは可能ですか?
以下のように HtmlAgilityPack を使用して、リモート html から js スクリプトを取得しています。
....
JsVars は以下のように返します。
Jurassic で jsVars を評価した後にjs_var1またはjs_var2の値を取得する方法はありますか?
javascript - Jint を使用して Js コードを実行するときに GetValues を使用するにはどうすればよいですか?
私の質問は原始的です。しかし、それは非常に便利です。GitHubでSebastien Ros Jint アプリケーションを確認しました。
GetValue プロパティを複数回取得するにはどうすればよいですか?
GetValues(x,y,z...)
またはGetValue("x").GetValue("y").GetValue("z")
。x、y、z ..の結果が必要だからです。x 値だけではありません。
私はjsコードを実行しなければならないプロジェクトを持っていますが、if比較がたくさんあります(「if-else」ではないことに注意してください。if-if-ifがあります...)すべてのifにアクセスできます声明の結果。方法があることを発見しましたGetValue
。しかし、アクセスできる値は 1 つだけです。「y」にアクセスしたいときは、 を使わなければなりませんGetValue("y")
。しかし、同時に「x」の値を見たいのです。多分私はそれを望んでいGetValues("x","y","z"...)
ます。
コードプレックスでジュラシックをチェックしました
そして、私はそれを以下のように使用しました:
質問:
myproject 内でそれを行うにはどうすればよいですか?しかし、ジュラシックの代わりにジントを使用していますか? Jint multiGetValues プロパティが必要です...