![](/img/trans.png)
[英]Is it good in term of page loading to load js files and create whole page using js on client side
[英]Loading .js files on client side with page served by Node JS
我有以下简单的JS文件,对于将Socket.IO与NodeJS和Express框架一起使用的任何人来说,它们都会看起来很熟悉:
var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);
server.listen(8374);
// routing
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
在index.html
,我有以下代码行:
<script src="/socket.io/socket.io.js"></script>
我已经做了一些路径名和服务/挂载的实验,但我仍然不太了解这个客户端线路是如何工作的。 这个问题的答案说,通过侦听server
, io
处理所有传入的Socket.IO请求。
...
我的问题是:是否可以对其他客户端JS文件执行此操作?
例如,是否有一些简单的方法来捆绑JQuery,以便可以用相同的方式处理它? 目前,我可以将文件放在public
类的文件夹中,并使用Express的app.use()
方法,以便在index.html
可以包含以下行:
<script src="/public/jquery-1.9.1.js"></script>
有没有一种方法可以像NodeJS一样将JQuery作为依赖项进行管理?
我认为最终结果将如下所示:
服务器端:
var jquery = require('jquery');
客户端:
<script src="jquery/jquery-1.9.1.js"></script>
我不太确定要使用模块来托管特定文件,但仅在请求时托管文件会节省更多时间:
app.get("/", function (req, res) {
res.sendfile(__dirname + "/index.html");
});
app.get("/public/jquery-1.9.1.js", function (req, res) {
res.sendfile(__dirname + "/public/jquery-1.9.1.js");
});
我不使用Express,所以请原谅任何错误。
在express 2.x中,许多人为此使用“ dynamicHelpers”。 您的app.js中类似这样的内容
app.dynamicHelpers({
scripts: function (){
return ['/js/jquery.min.js', '/js/jquery.ui.min.js']
}
})
在使用玉的布局中,您可以执行此操作。
- each s in scripts
script(type='text/javascript', src= s)
现在,app.dynamicHelpers已被删除,因此在express 3.x中,您需要为此创建一个简单的模块,或者只是内联。 如果需要,可在您的配置或特定环境中使用app.use。 就像是。
app.use(function (req, res, next){
res.locals.scripts = ['/js/yourscript.js', '/js/yourotherscript.js']
next();
}
在玉器布局中使用它会是相同的。 如果我理解正确,那将是包含这些脚本的一种方法。 我个人宁愿静态地包括它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.