问题标签 [clearscript]

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.

0 投票
2 回答
1037 浏览

java - Java Nashorn 将 java 类(不是实例)暴露给 javascript

我正在使用ClearScriptwith.NET将类公开给 Javascript。我用它来公开类(不是类的实例给 JS):engine.AddHostType("Worker", typeof(Worker));所以我可以使用var x = new Worker();In javascript;

现在在NashornJava 中这是行不通的。我只能像这样公开类的实例:factory.getBindings().put("Worker", new Worker());

有没有办法使用 Nashorn 将类类型公开给 javascript。

谢谢!

0 投票
0 回答
262 浏览

c# - 在使用 clearscript 实现的 VBScript 中获取局部变量值

我正在使用 Clearscript 为 Vbscript 实现一个调试器,该调试器预计会在遇到断点时显示所有变量及其值。

我可以使用以下代码获取所有变量:

我面临的挑战是我无法获取上下文特定的变量:例如,在函数内部设置了一个断点,然后在命中断点时,变量列表根据上述代码变为空。

有没有办法获取上下文特定的变量(函数内的变量)

考虑以下代码:

在这里遇到断点应该显示 jas = 123

请帮忙!

您可以在此处查看 Clear script 的回复: https ://clearscript.codeplex.com/discussions/640552#post1432299

0 投票
1 回答
309 浏览

performance - 如何提高并发请求的 React.Net / SuperchargedReact 服务器端渲染性能?

我正在尝试使用 React.Net 和 SuperchargedReact 实现从 ASP.NET 网站内对 React 组件进行服务器端渲染。

我的初始负载测试结果表明,可以相当快地处理单个请求(大约 100 毫秒),但在并发请求(> 4 秒)下性能会迅速下降。详情如下。

可能我没有充分利用这些工具的潜力,并且测试很粗略,但我需要一些关于从哪里开始提高性能的建议。

问题

  1. 我应该大致期望什么级别的并发?例如,并发性是否仅限于我可以在内存中保存的 javascript 引擎实例的数量。还是取决于 IIS 工作进程的数量。或者是其他东西。

  2. 我应该从哪里开始寻求提高性能 - 提示?技巧?资源?

  3. 当 SuperchargedReact 据称实现了许多性能改进时,什么可以解释其性能不如 React.Net。

测试细节

我通过 browserify/babelify/gulp-minify 从 ES6 源代码构建了一个 js 包。然后反应组件通过全局变量暴露出来。不包括 react-router,并且对 SuperchargedReact 进行了一些小的修改,以使其在没有路由器的情况下工作。

我从另一台服务器上的 JMeter 请求了一个大约 5kb 的服务器端渲染页面,具有不同的线程数和每分钟请求限制。

React.Net 的结果

10 个线程

20 个线程

50 个线程

SuperchargedReact 的结果

10 个线程

我现在停止测试 SuperchagedReact,因为它看起来比 React.Net 差得多

0 投票
2 回答
148 浏览

javascript - 使用 ClearScript 将 XmlDocument 暴露给 JScript 时遇到困难

背景:Windows Azure;Visual Studio 社区 2015;清除脚本;脚本

我在将 XmlDocument 对象暴露给使用 ClearScript 执行的 JScript 时遇到问题。

我正在使用实例化一个 JScript 解释器

要实例化 XmlDocument 对象,我已经尝试过

我使用这个执行 JScript 脚本

我的困难在于如何使用CSXmlDocument脚本中的对象。我尝试了以下所有方法均无济于事。

CSXmlDocument使用 定义时AddCOMObject,第二次到第四次调用会给出错误

第一次调用只允许我访问三个方法,Equals, GetHashCode, GetType

CSXmlDocument使用 定义时AddHostType,第一个仅提供上述三种方法。第二次调用似乎可以访问全套属性和方法(至少这是 VS2015 在调试会话中所说的)但是,当我尝试使用LoadXml我得到的方法时

我目前正在解决两个可能的问题:

  1. 根据另一个 StackOverflow 发布的字符编码。
  2. HTML-XML 标记冲突。
0 投票
3 回答
3090 浏览

javascript - 使用 ClearScript 将变量传递给 Javascript

我想在 C# 中运行 Javascript 并在 C# 和 Javascript 之间传递变量。

似乎 ClearScript 是当前执行此操作的稳定方法。

我有一个看起来像这样的 JavaScript 函数:

我如何在 ClearScript 中调用它,传入a数组并取回rtnstr字符串。

我找到了这个 URL:https ://clearscript.codeplex.com ,它显示了如何检索整数数组;我需要它来检索一个字符串。

我还需要知道如何传入变量;该示例并未显示这一点。

0 投票
1 回答
220 浏览

javascript - 如何通过 ClearScript 将 AdWords 公开给 JavaScript?

背景:VS2015社区;C#; ClearScript.V8.5.4.5;Google.AdWords.18.25.0

我正在尝试创建一个脚本环境来做我的预算。在 C# 方面,我正在设置一个 JScript 环境,并向它公开我需要的所有 AdWords 类型和对象,即

我已经做过几次这种事情了,所以没有惊喜。

我目前遇到的困难是 JScript 方面。此时的代码如下所示:

在这一点上,bosgetBillingAccounts. bos了解它的唯一方法是执行

但是,然后在bos和它需要的值之间没有连接user,并且尝试执行getBillingAccounts会引发错误。

从中派生的原始 C# 代码是

GetService调用转换为BudgetOrderService似乎足以getBillingAccounts使bos. 但是,JScript 不允许我这样做。

那么从这里到哪里呢?

0 投票
1 回答
409 浏览

c# - 从 ClearScript 调用时在 JScript 中捕获 Adwords 错误?

背景:VS2015社区;C#; ClearScript.V8.5.4.5;Google.AdWords.18.25.0

有关此帖子的背景信息,请参阅之前的帖子(顺便说一下,感谢 @BitCortex 解决了第一个难题。)

我现在通过 ClearScript 和 C# 在 JScript 中编写了一个有效的 Adwords 突变。现在的挑战是处理错误。

在下面的代码块中,我正在创建一个新的BudgetOrder

我目前遇到的问题是,如果出现错误,exc除了

例如,并且response未定义的。

在 C# 中本机运行时可用的常用数据BudgetOrderReturnValue并未存储在我能看到的任何地方。

我确实尝试使用

但是当错误发生时,response仍然设置为undefined

我已经能够捕获指定的 mutate 的 XML

App.config其中给了我detailed_logs.log一个in C:\Logs\Adwords。因此,当发生错误时,我可以返回该日志并查看错误是什么,例如

但是,脚本似乎没有任何数据可用。

想法,有人吗?

之后

不幸的是,这不起作用。bos.mutate 行会导致脚本因未捕获的错误而崩溃。

明天

运行脚本的 EXE 的输出:

C# 代码

JScript 代码如上。因此,ClearScript 引擎似乎在 tryCatch 方面表现不佳。

几天后

我至少从中学到了一件事:我不需要把

JScriptEngine实例化对象时进入我的 C# 代码。如果脚本中有debugger;语句,则会提示我开始调试会话。

但回到剧本

第一次通过,它工作正常。第二次,在日期不变的情况下,会引发 AdWords 错误(已采用日期范围),这会导致 JScriptEngine 引发未处理的异常错误。系统提示我启动调试会话,该会话在启动时会显示一个对话框,其中包含

和高亮就行了response = bos.mutate(mutations);。无论我是否有debugger;声明,都会发生这种情况。

所以我放弃了使用 ClearScript 编写 AdWords 的脚本。也许我应该将此作为一个错误提交给 ClearScript 的人们。

0 投票
0 回答
1383 浏览

c# - ASP.NET 5 中的 Clearscript V8 - 无法打开 v8-x64.dll -- PE 映像不包含托管元数据

我对 ClearScript 有疑问。当我从常规项目(类库或 wpf)中使用它们时,当通过 nuget 添加依赖项时,还会添加一个后期构建脚本,将 、 和 复制ClearScriptV8-32.dllClearScriptV8-64.dll目录v8-ia32.dll并且v8-x64.dll一切bin正常。但是当我尝试在新的 ASP.NET 中使用这个库时,事情就出错了。

用于 dnx 的 Nuget ClearScript 包下载到

我的意思是,ClearScript.dll是否存在但其他 4 个文件不存在(它们存在..\..\tools\native\{x86,amd64}\*,就像桌面应用程序一样),当我运行应用程序时它说

因此,根据我在常规项目中的经验,我只是从

然后我得到这个错误

我会假设这些 dll 在某种程度上对 web 版本无效,也许我需要以某种不同的方式获取这些 dll?

我可以重现从 WebApi 模板创建新 ASP.NET 5 项目的问题。我使用单一框架dnx46,不core,因为我使用的项目无论如何都不是针对它编译的。我用ClearScript.V8 5.4.3. DNX SDK 版本为1.0.0-rc1-update1.

我只是在创造

在控制器方法中。

0 投票
1 回答
755 浏览

javascript - 在 Selenium 中,移动到浏览器屏幕上的 (x,y) 不会移动鼠标指针。为什么?

背景:Windows 10;C#.NET;Selenium WebDriver(Chrome);清除脚本

我已经通过 ClearScript 向 javascript 公开了许多 Selenium 函数。在剧本...

...我创建了一个 Chrome 网络驱动程序的实例,导航到一个网站,找到“body”标签,创建一个 Actions 对象的实例,并使用它,移动到 (200,200) 的 (x,y)身体的左上角。

我在那里有代码(未显示),它告诉我浏览器认为鼠标在哪里。在上述之后,浏览器向我报告它的内部 (x,y) 是 (200,200),这很棒。不太重要的是屏幕上的鼠标指针没有移动到匹配。

有没有办法告诉鼠标指针反映浏览器的内在现实?

0 投票
1 回答
516 浏览

c# - 如何更新 ClearScript 中的字典条目?

上下文:ClearScript、JScript、C#、Windows、Azure

在我启用 ClearScript 的项目中,我有一个Dictionary<string,object>用于将数据传递到评估脚本的内部和外部。

在 C# 方面我有

然后稍后

在 JScript 方面,我有类似的东西

用于设置值。

目前的挑战是更新字典中的值。以下作品

只是它是非标准的 JScript。更重要的是我在 Notepad++ 中使用的 JSHint 工具抱怨。

.Remove()我想我可以在之前做一个.Add(),但有更好的方法吗?