1

我一直在研究如何使 javascript 作为编译代码更有效地运行。我在这个问题jscript中遇到了 jscript.net

虽然我对使用它来隐藏我的 JavaScript 逻辑并不真正感兴趣,但我对它导致编译代码的事实感兴趣。

我试着用谷歌搜索,但我似乎得到的是,这是微软在框架 1.1 周围约会的一个老想法。

此外,我得到了 2 个阵营的意见,他们说他们讨厌它,因为调试是一场噩梦,而另一方则说它提高了性能。

我没有找到比这更多的信息。

所以,如果我不太关心调试(目前)我应该考虑使用 jscript.net 来编译更快的代码执行吗?对于我正在使用的框架,是否有更现代的替代方案,或者我根本不应该考虑它?

最后,{sorry} 有没有关于如何实现它的代码示例/说明?

4

2 回答 2

2

我正在客户端开发带有 .html 页面(html5 + jquery + bootstrap)的网站,在服务器端开发 Web 处理程序(带有 JScript .NET v10 的 .ashx 文件)。

QuickSharp迷你 ide 支持 JScript .NET,简单快速!

Justin Rogers 的书“ Microsoft JScript NET Programming ”是必须的。

于 2014-11-04T20:19:12.017 回答
1

最近我经常使用 jscript.net(以及 WSH 附带的“旧”jscript)。

但永远不要将它与 Visual Studio 一起使用(您可能已经找到了这个)。但只需使用简单的记事本++。

这就是让 jscript 对我如此出色的原因:

  1. 它在每个 Windows 系统上都可用(即使是最古老的 XP 机器也有一些 .net 框架),因为每个 .net 框架都带有 jscript 编译器。
  2. 由于 jscript 指令,它非常适合“内置”批处理文件(示例如下)
  3. 有很多 javascript 代码几乎可以直接在 jscript.net 中使用。毕竟javascript是世界上最流行的编程语言。
  4. 它背后有 .net 的力量

还有我不喜欢的:

  1. 看起来它有点被微软抛弃了。
  2. 即使在 MSDN 上,代码片段/示例也很少。尽管在 90% 的情况下,将 C# 代码重写为 Jscript 很容易。
  3. jscript.net 中缺少一些很酷的功能,但在其他两种本机 .net 语言(vb 和 cs)中可用 - dll import , generics ..

以下是我在记事本中使用 jscript.net 的方式:

@if (@X)==(@Y) @end /****** silent jscript comment ******

@echo off
::::::::::::::::::::::::::::::::::::
:::       compile the script    ::::
::::::::::::::::::::::::::::::::::::
setlocal

:: remove the rem bellow when you fell your code is ready to use
rem if exist "%~n0.exe" goto :skip_compilation

:: searching the latest installed .net framework
for /f "tokens=* delims=" %%v in ('dir /b /s /a:d /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
    if exist "%%v\jsc.exe" (
        rem :: the javascript.net compiler
        set "jsc=%%~dpsnfxv\jsc.exe"
        goto :break_loop
    )
)
echo jsc.exe not found && exit /b 0
:break_loop



call %jsc% /nologo /out:"%~n0.exe" "%~f0" 
::::::::::::::::::::::::::::::::::::
:::       end of compilation    ::::
::::::::::::::::::::::::::::::::::::
:skip_compilation

::
::::::::::
"%~n0.exe" %*
::::::::
::
endlocal
exit /b 0

****** end of jscript comment ******/

import System;
Console.WriteLine( "Boo" );
Console.WriteLine("Press any key to continue...");
Console.ReadKey();

您可以将其保存为.bat文件并运行它。它会自行编译并启动。总的来说,您不必太担心注释中的代码,您可以将其用作模式。

于 2014-09-17T14:07:30.963 回答