问题标签 [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.
java - Java Nashorn 将 java 类(不是实例)暴露给 javascript
我正在使用ClearScript
with.NET
将类公开给 Javascript。我用它来公开类(不是类的实例给 JS):engine.AddHostType("Worker", typeof(Worker));
所以我可以使用var x = new Worker();
In javascript
;
现在在Nashorn
Java 中这是行不通的。我只能像这样公开类的实例:factory.getBindings().put("Worker", new Worker());
有没有办法使用 Nashorn 将类类型公开给 javascript。
谢谢!
c# - 在使用 clearscript 实现的 VBScript 中获取局部变量值
我正在使用 Clearscript 为 Vbscript 实现一个调试器,该调试器预计会在遇到断点时显示所有变量及其值。
我可以使用以下代码获取所有变量:
我面临的挑战是我无法获取上下文特定的变量:例如,在函数内部设置了一个断点,然后在命中断点时,变量列表根据上述代码变为空。
有没有办法获取上下文特定的变量(函数内的变量)
考虑以下代码:
在这里遇到断点应该显示 jas = 123
请帮忙!
您可以在此处查看 Clear script 的回复: https ://clearscript.codeplex.com/discussions/640552#post1432299
performance - 如何提高并发请求的 React.Net / SuperchargedReact 服务器端渲染性能?
我正在尝试使用 React.Net 和 SuperchargedReact 实现从 ASP.NET 网站内对 React 组件进行服务器端渲染。
我的初始负载测试结果表明,可以相当快地处理单个请求(大约 100 毫秒),但在并发请求(> 4 秒)下性能会迅速下降。详情如下。
可能我没有充分利用这些工具的潜力,并且测试很粗略,但我需要一些关于从哪里开始提高性能的建议。
问题
我应该大致期望什么级别的并发?例如,并发性是否仅限于我可以在内存中保存的 javascript 引擎实例的数量。还是取决于 IIS 工作进程的数量。或者是其他东西。
我应该从哪里开始寻求提高性能 - 提示?技巧?资源?
当 SuperchargedReact 据称实现了许多性能改进时,什么可以解释其性能不如 React.Net。
测试细节
我通过 browserify/babelify/gulp-minify 从 ES6 源代码构建了一个 js 包。然后反应组件通过全局变量暴露出来。不包括 react-router,并且对 SuperchargedReact 进行了一些小的修改,以使其在没有路由器的情况下工作。
我从另一台服务器上的 JMeter 请求了一个大约 5kb 的服务器端渲染页面,具有不同的线程数和每分钟请求限制。
React.Net 的结果
10 个线程
20 个线程
50 个线程
SuperchargedReact 的结果
10 个线程
我现在停止测试 SuperchagedReact,因为它看起来比 React.Net 差得多
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
我得到的方法时
我目前正在解决两个可能的问题:
- 根据另一个 StackOverflow 发布的字符编码。
- HTML-XML 标记冲突。
javascript - 使用 ClearScript 将变量传递给 Javascript
我想在 C# 中运行 Javascript 并在 C# 和 Javascript 之间传递变量。
似乎 ClearScript 是当前执行此操作的稳定方法。
我有一个看起来像这样的 JavaScript 函数:
我如何在 ClearScript 中调用它,传入a
数组并取回rtnstr
字符串。
我找到了这个 URL:https ://clearscript.codeplex.com ,它显示了如何检索整数数组;我需要它来检索一个字符串。
我还需要知道如何传入变量;该示例并未显示这一点。
javascript - 如何通过 ClearScript 将 AdWords 公开给 JavaScript?
背景:VS2015社区;C#; ClearScript.V8.5.4.5;Google.AdWords.18.25.0
我正在尝试创建一个脚本环境来做我的预算。在 C# 方面,我正在设置一个 JScript 环境,并向它公开我需要的所有 AdWords 类型和对象,即
我已经做过几次这种事情了,所以没有惊喜。
我目前遇到的困难是 JScript 方面。此时的代码如下所示:
在这一点上,bos
对getBillingAccounts
. bos
了解它的唯一方法是执行
但是,然后在bos
和它需要的值之间没有连接user
,并且尝试执行getBillingAccounts
会引发错误。
从中派生的原始 C# 代码是
将GetService
调用转换为BudgetOrderService
似乎足以getBillingAccounts
使bos
. 但是,JScript 不允许我这样做。
那么从这里到哪里呢?
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 的人们。
c# - ASP.NET 5 中的 Clearscript V8 - 无法打开 v8-x64.dll -- PE 映像不包含托管元数据
我对 ClearScript 有疑问。当我从常规项目(类库或 wpf)中使用它们时,当通过 nuget 添加依赖项时,还会添加一个后期构建脚本,将 、 和 复制ClearScriptV8-32.dll
到ClearScriptV8-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
.
我只是在创造
在控制器方法中。
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),这很棒。不太重要的是屏幕上的鼠标指针没有移动到匹配。
有没有办法告诉鼠标指针反映浏览器的内在现实?
c# - 如何更新 ClearScript 中的字典条目?
上下文:ClearScript、JScript、C#、Windows、Azure
在我启用 ClearScript 的项目中,我有一个Dictionary<string,object>
用于将数据传递到评估脚本的内部和外部。
在 C# 方面我有
然后稍后
和
在 JScript 方面,我有类似的东西
用于设置值。
目前的挑战是更新字典中的值。以下作品
只是它是非标准的 JScript。更重要的是我在 Notepad++ 中使用的 JSHint 工具抱怨。
.Remove()
我想我可以在之前做一个.Add()
,但有更好的方法吗?