为什么脚本语言用于服务器端任务而不是编译语言?

Why are scripting languages used for server side tasks and not compiled languages?

...或者两者串联使用各自的不同特征?

我一直在试图弄清楚为什么服务器端脚本与 运行 处理 Web 请求的编译程序不同。我真的很感激服务器端脚本的 usefulness/use 示例,它使它变得必要。

我读到这篇关于 ASP 的文章(我一直在使用 ASP.Net 但不太了解它):“当浏览器请求 ASP 文件时,服务器会传递请求到读取 ASP 文件并执行文件中的服务器脚本的 ASP 引擎”。我知道这与使用 ASP 页面请求传递的用户数据自定义 html 文件有关(服务器端脚本 can/are 本质上是保密的来自客户端)。 ->

这就是使用服务器端脚本的原因:使用嵌入式 dom 编辑脚本语言编辑 dom 比使用带变量的编译程序更容易从客户端编辑服务器端的 dom?

谢谢

有些系统确实使用 运行 服务器端的脚本语言。

不,asp.net 服务器端代码不 运行 您拥有服务器端的任何 JavaScript。

当您点击 asp.net 按钮时?网页被发送到服务器。然后在 运行s 后面编码,然后将其呈现并发送到客户端。那么当你谈论代码隐藏时?你说的是 C# 或 vb.net 代码。

几乎没有理由尝试 运行 一些脚本代码服务器端。 JavaScript 在浏览器中被设计并且 运行 100%,因此被设计成 运行 没有编译器。

客户端脚本的优势?那么它 运行 在客户端计算机上 100%,因此不需要往返或 post 返回。那么对于快速 windows 这样的体验?那么,您开始采用越来越多的客户端代码。原因是浏览器中的客户端软件 运行ning 可以感觉到,响应非常像 windows 桌面程序。

所以我们看到了像 ajax 这样的技术的兴起。这意味着您仍然 运行 浏览器端代码,但浏览器端代码现在可以对 Web 服务器进行“微小”或“较小”的调用。在某些情况下 asp.net 可以并且将会为您设置 + 注入一些浏览器端代码。例如,当您放入几个文本框,然后放入一个 asp.net 验证器时?请注意这些验证器的工作速度和即时性。 (它们无需往返即可工作!也无需 post 返回!)。那么,当您将这些验证器放入该网页时? Asp.net 将在客户端浏览器中为您编写并自动生成 JavaScript 到 运行。

因此,在 asp.net 中,如果代码可以(并且应该)运行 在 运行 服务器端使用脚本语言几乎没有什么好处浏览器。谁会愿意放弃像 c# 或 vb.net 这样伟大的 IDE 和开发语言,而不得不用像 JavaScript?

这样的难懂的语言来编写

但是因为我们想要在浏览器中 运行 越来越多的“响应式”应用程序?然后越来越多的精力花在这个简单的问题上: 我们如何才能在浏览器中拥有越来越多的代码和逻辑 运行 100%,从那时起,这意味着用户交互将 100% 发生在本地,而无需访问服务器。这不仅减少了服务器的工作量,也意味着响应时间变得越来越像桌面程序。 ajax 和其他方法的出现意味着您现在可以在浏览器中 运行 100% 的电子表格。

你认为所有 hub-bub 都是关于西装外套的?简而言之,Blazer 只是一种技术,可以让您的服务器端 C# 代码现在 运行 100% 写入客户端浏览器。这样做的好处意味着您不仅可以用一种语言编写,而且现在 c# 代码可以 运行 服务器端或浏览器端。同样,这个概念是一种尝试,允许开发人员将越来越多的代码向下推送到浏览器 运行,以代替必须 运行 服务器端的代码。现在服务器端代码不是一件坏事,但是如果您需要 post 返回或将网页发送到服务器以将该代码发送到 运行?好吧,这需要时间,因此您不会像您所说的 100% 桌面软件那样获得出色的交互式 Web 应用程序。

事实上,我们现在可以通过 Web 端和服务器端代码的组合进行交互?好吧,我们有能力创造非常棒的用户体验,现在 Web 应用程序可以 运行,感觉和响应与典型的桌面应用程序一样好,但不需要安装软件。

所以在一天结束的时候?不,没有什么理由想要 运行 一些脚本代码服务器端。在 asp.net 的情况下? None 的 JavaScript 代码执行 运行 服务器端 - 它非常用于浏览器中 运行 的代码。

没有什么理由需要或拥有脚本代码 运行 服务器端。这真的完全取决于网络的运作方式。但是如果能把更多和模式的代码推送到客户端呢?那么你会的。随着工具变得越来越好?嗯,他们允许越来越多的代码更容易地在浏览器端 运行。 (这就是西装外套的意义所在)。

那么,如果你写一个可爱的井字游戏呢?好吧,您可以将其 100% 写入 运行 浏览器端。这意味着网站上的负载和压力为零。而且这也意味着用户获得了类似桌面的用户体验。 (事实上​​他们 运行 100% 使用浏览器端代码来玩那个游戏)。

所以请记住,none JavaScript 在 asp.net 运行 服务器端 - js 用于代码和交互 运行s 在浏览器端 - 因此不需要一些 post 返回甚至与服务器通信。但是,您可以调用该网页中的子函数或函数(使用 js ajax 调用)。

所以没必要更容易 use/change/edit 部分DOM 服务器端或客户端。但是,嘿,如果您可以进行编辑或更改 100% 的客户端,那么您应该这样做,因为那样您就不需要与服务器对话。但是,客户端代码没有也不允许您执行诸如编写 sql 查询和填写 table 之类的操作。它需要与服务器对话才能做到这一点。因此,您可以使用真正出色的服务器端编码系统来提取该数据。另一个问题是安全性。如果我可以编写一些浏览器代码来从数据库中提取数据?好吧,那我就去打amazon.com把他们所有的数据都偷走!

因此,JavaScript 非常有限。它不能做诸如说去抓取磁盘驱动器上的文件并将其 up-load 发送到服务器之类的事情。如果你能做到这一点,那么当你访问我这边时,我会 运行 一些代码来获取你的 outlook 甚至一些名为 passwords.xls 的电子表格并上传它。因此,出于安全原因,运行 浏览器中的代码最好在您的计算机上可以执行的资源和操作方面非常有限 - 否则它会带来太大的安全风险。但是计算机 运行ning 在我的网站和服务器上?好吧,我希望该代码可以执行任何操作,包括处理您的信用卡或使用银行信息等。