[英]Confusion on how to execute javascript server-side vs client-side
我不确定我在这里问的问题是否正确。 我提前为我的无知道歉,我只花了一年的时间自学全栈 JS 和 Web 应用程序架构,我正试图在粒度层面上理解这一点。 以前提出这个问题的尝试似乎冒犯了一些开发人员,所以这可能是一个愚蠢的问题。
我试图了解如何,或者如果可能的话,明确指定或分配特定文件或 javascript 块以在服务器上与客户端/浏览器上进行处理/运行/执行。
在 app.js 文件中编写一些 javascript 并运行node app.js
似乎仍然将该脚本暴露给浏览器,可以在 Dev Tools 的 Sources 选项卡中查看。
PHP 由服务器解释,然后将静态 HTML 发送到客户端。 这是“预处理”,相当于使用 Javascript 应用程序框架进行服务器端渲染吗? 或者是否编写与 HTML 服务器端内联的 .php 文件(就像您在 Wordpress 中看到的那样)更等同于内联 javascript 客户端? 还有一种不同的方法可以让 JS 在服务器端进行解释?
我一直在阅读有关 GENERATE_SOURCEMAP 的内容,但这似乎更像是用于隐藏客户端 JS 模块。
这个问题的其他可能的措辞
我不是在询问服务器端与客户端 JS 的定义,或者服务器端应用程序框架的建议。
再一次,我想我把自己弄糊涂了,或者遗漏了一些非常基本的东西。 也许唯一的答案是将您的私有 Web 应用程序与您的客户端应用程序分开并通过 API 访问。 感谢您的任何帮助。
总结:你在服务器端由节点守护进程执行的 JavaScript 在客户端是不可见的,唯一可见的是你的 JS 的输出。
当您创建一个带有.php
扩展名的文件时,您需要一个执行该文件的可执行文件,以将结果返回给客户端以呈现它。
例如:
index.php
:<?php
echo '<script>console.log("HelloWorled")</script>'
?>
要运行此文件,您需要 PHP 守护程序(php 解释器)来运行该文件以获取此输出<script>console.log("HelloWorled")</script>
接下来; 输出将返回给客户端,在客户端浏览器上执行;
在 PHP 的情况下,此操作由 http 服务器(例如 nginx)通过以下配置直接管理:
server{
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php<version>-fpm.sock;
}
}
你会在/etc/nginx/sites-available/default
文件中找到它
这个规则只是告诉nginx让所有扩展名为.php
的文件都经过php代理执行,然后只将执行结果返回给客户端。
您必须想象与 nodejs 完全相同的事情。
我使用以下语法创建了一个index.js
文件:
....
process.write( '<script>console.log("HelloWorled")</script>');
....
使用node index.js
运行文件,您将得到输出<script>console.log("HelloWorled")</script>
,您的服务器(例如 expressJS)将发送回客户端以在客户端运行它以获取 los php代码的相同结果。
笔记:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.