Tag: web

部署竞争条件导致CDNcaching旧的或损坏的文件

我们目前的部署过程如下所示: 使用grunt来创build生产资产。 在我们的CDN创builddate戳记和点文件(例如/scripts/20140324142354/app.min.js )。 旁注:我以前听说过这个叫“版本控制”的过程,但是我不确定这个过程是否合适。 提交到github构build。 在web服务器上运行git pull从github中获取新的代码。 这是一个node.js站点,我们forever -w使用forever -w来监视文件更改并相应地更新站点。 我们的应用程序中有一个path设置,通过/scripts/*/app.min.js提供最新版本的应用程序。 我们这样版本的原因是因为我们的CDN被设置为无限期地cachingJavaScript文件,这有意创buildcaching未命中,以便在CDN(也在用户的浏览器中)更新代码。 这在大多数情况下工作正常。 但是,如果其中一台服务器在检查新代码时有点滞后, 有时客户端在部署正在进行的同时点击该页面,并尝试从CDN检索新的JavaScript代码。 CDN试图检索它,但点击一个未完成检查新代码的服务器,并caching一个旧的或部分下载的文件,导致各种问题。 这个问题由于我们的CDN有很多边缘位置而加剧了,所以我们的办公室并不总是能立即看到问题。 一些边缘位置可能已经拉下了旧的/坏的代码,而其他的可能已经拉下了新的/好的代码。 有没有更好的方法来做这些部署,以避免这个问题?

与meteor一起使用Solr

我正在和meteorJS合作,目前是新的。 由于Meteor只使用Mongo DB,因此我需要将Solr与它集成,以便更快地进行search。 谷歌search,但无济于事。 任何人都可以与我分享一些方法,链接或代码片段,我可以在我的Meteor项目中使用Solr。

我应该为WebP图像启用GZIP压缩吗?

压缩WebP图像后启用gzip压缩是否仍然相关..? 在我的情况下,我使用压缩中间件的express 。

WebAssembly是否会取代JavaScript?

已经有2个月的时间,我一直在深入研究JavaScript以及它的库和框架。 我听到我高中的其他学生告诉我,程序集将取代JavaScript。 这是真的? 而另一个问题,你推荐什么语言的后端开发接近JavaScript? 我真的不想成为一个破产艺术家。 我听到很多JavaScript开发人员被挖掘和replace,因为这只是一个烦人的语言来处理。

Node.js:如何在服务器端打开一个图像窗口?

我正在开发一个node.js应用程序,我想知道这是否可能,如果是这样,如何:在我启动服务器后,node.js应该在服务器端打开一个新窗口,并显示一个图像生成从代码。

从用户电子邮件创build用于电子邮件validation的散列/标记

任何人都可以帮我解决什么用来创build一个用户input(电子邮件地址)的安全令牌(或哈希)。 我想做一个电子邮件validation系统注册。 用户使用电子邮件地址和密码进行注册 我想创build一个独特的URL,我将发送给用户(因此问题) 我将这些(安全明智)存储在临时表中 用户通过发送的URLvalidation自己 我的问题是这个url应该如何。 我想我应该通过编码电子邮件地址,将其保存为唯一的,将url保存到临时表,当用户打开链接,我会比较这两个。 如果匹配,我会将凭据移动到真正的表。 你有什么好的资源关于这个话题。 我在后端有nodejs。 谢谢

aws lambdaerror handling

我试图从外部node.js应用程序(即不在AWS上)调用lambda函数。 我使用AWS文档中的代码示例,对名义情况非常有用。 但是,在发生错误的情况下,我的调用函数永远无法正确处理它。 我的调用代码如下: //AWS.config before var pullParams = { FunctionName : 'myFunctionName', InvocationType : 'RequestResponse', LogType : 'None', Payload : JSON.stringify({ "myParam" : params }) } var lambda = new AWS.Lambda(); lambda.invoke(pullParams, function(invocationError, data) { console.log("error value: " + invocationError) if (invocationError) { console.log("Error invoking AWS " + invocationError); //process error } else { […]

Socket.IO超出最大调用堆栈大小

我写了一个小的Socket.IO服务器,工作正常,我可以连接到它,我可以发送/接收消息,所以一切工作正常。 这里只介绍代码的相关部分: var RedisStore = require('socket.io/lib/stores/redis'); const pub = redis.createClient('127.0.0.1', 6379); const sub = redis.createClient('127.0.0.1', 6379); const store = redis.createClient('127.0.0.1', 6379); io.configure(function() { io.set('store', new RedisStore({ redisPub : pub, redisSub : sub, redisClient : store })); }); io.sockets.on('connection', function(socket) { socket.on('message', function(msg) { pub.publish("lobby", msg); }); /* * Subscribe to the lobby and receive messages. […]

在node.js vs C#中的networking爬虫性能

我正在编写一个应用程序,爬过一长串链接, 下载页面 ,使用xpath查询searchhtml元素,并将检索到的一些信息存储在mysql数据库中 。 我使用multithreading解决scheme来获取大部分服务器,并消除延迟的影响。 我使用csharp和java编写了大部分应用程序,并使用asp.net/c#编写了我的Web应用程序。 我想问的是Node.js是否值得从性能angular度考虑? 因为吞吐量是最重要的因素。 Node.js更便携,跨平台是另一个原因,但性能对我来说更重要。

使用casperjs“使用Facebooklogin”实现

我看到很多网站可以select使用Facebook (airbnb,about.me等)login。 我想要使​​用Facebook帐户实现自动login到这些网站(以后者)。 这是about.me的代码: var casper = require('casper').create(); var fbUsername = casper.cli.args[0] var fbPassword = casper.cli.args[1] // login to facebook casper.start('https://www.facebook.com/login.php?', function() { this.fill('form#login_form', { 'email': fbUsername, 'pass': fbPassword, },true) }); casper.thenOpen("https://about.me/login",function() { this.waitForSelector('#facebook_login',function() { this.click('#facebook_login') }) }); casper.thenOpen("https://about.me/account/#!/myinformation",function() { this.debugHTML() }) casper.run(); 我看到我login到Facebook,但是对于我尝试过的每个网站,我都无法login,因为“facebooklogin”上的新闻没有正常工作(每次都是)。 任何人都可以帮助我了解问题在哪里,我该如何解决?