Articles of caching控制

Docker容器中的NodeJS webpack构build

我阅读了关于长期caching的内容,并试图在我的项目中实现这一点,但是当我试图在Docker容器中构build它时,清单文件会生成错误的资源链接,但是生成过程却很顺利。 Dockerfile.web FROM node:8.2.1-alpine WORKDIR /web ADD /tmp/app.tar.gz /web # At the end node_modules will be removed because of bug with npm prune. # In this case we need re-install production-only deps to reduce container weight. RUN yarn install && \ yarn run build-production && \ rm -rf node_modules && \ yarn install –production && […]

浏览器caching中的Zip文件

大家好 目前,我有一个NodeJS的Web应用程序在制作一个网站的数据抓取。 具体来说,这个Web应用程序为了下载它们而擦除图像。 例如,所有的图像永久链接都是从reddit的首页中截取的。 然后他们被发送到客户端单独下载。 我的问题是与网站我刮了可以有成千上万的图像。 如果将1000个以上的图像下载到下载文件夹,这会提供可怕的用户体验。 结果我有两个select。 A)下载到服务器上的临时文件夹。 压缩。 发送给客户端下载。 从服务器删除 B)将文件下载到浏览器caching。 压缩。 下载到指定的下载目录。 我的问题是, 选项B甚至可能吗? 我对整个过程相对比较陌生,我找不到任何东西来实际压缩浏览器caching中的文件。 我可以比较容易地实现选项A,但这需要大量的带宽,在DigitalOcean上我可以find大约5美元/每分钟的带宽。 然而,整个项目是一个学习经验,因此我希望能够pipe理浏览器caching中的文件。 我正在使用以下NPM模块: 的NodeJS performance Cheerio 请求 进一步更新 我遇到了一个名为jsZip的NPM插件: https ://stuk.github.io/jszip/ 但是,我并不知道它也可以在客户端实施。 这纯粹是我的错误。 这引出了一个有趣的WebStorage问题: https ://www.w3schools.com/html/html5_webstorage.asp 会话的最大存储大小是5MB 从这里我将尝试实现这个答案在这里: 你如何cachingJavaScript的图像到我当前的代码,并将更新这个答案与任何其他人面临这个问题的结果。

使用Node JS中的节点caching模块,设置后无法获取数据

Node.js版本:v6.10.3操作系统:Windows 我正在尝试使用Node JS实现caching。 使用节点caching模块。 我使用下面的代码将数据设置为caching并从caching中获取数据。 const NodeCache = require( "node-cache" ); const myCache = new NodeCache( { stdTTL: 3000, checkperiod: 3000} ); obj = { my: "Special", variable: 42 }; myCache.set( "myKey", obj ); // Calling DB, fetch the data and set in to cache for first time when client requests. value = myCache.get( "myKey" […]

npm不使用caching

警告,我正在运行的npm install从正在用作Jenkins构build奴隶的Docker容器中,但是我已经确定npmcaching没有损坏,并且存储在跨容器运行和rms持久化的卷中,您可以看到在这里certificate 当我运行npm cache ls ,列出了我的package.config中的许多软件包: 然而,每次我运行npm install或者npm –skip-installed –cache-min 9999999 install每一个软件包都会被安装。 环境是一个Centos7docker集装箱 节点 – 版本6.11.4 npm – 版本3.10.10 当我在我的本地主机Windows 10机器上运行npm install两次,相同的节点版本和npm版本时,第二次npm install时显然使用了caching:

Node / Express服务映像是否存在; caching问题

一直在使用SO,但这是我的第一个问题,因为我找不到解决这个问题的方法。 我会尝试尽可能的明确,有什么不清楚的,只是让我知道,所以我更新相应的问题。 我正在使用路由来根据在路由中传递的userId作为参数()来提供用户的照片。 它可以工作,但每次遇到标签时,都会从服务器请求图像,并且从不使用caching版本。 我用Cache-Control玩了一下,但是不pipe是全部还是全无:如果启用了caching并且用户改变了他的照片,它仍然会使用旧的照片。 我的问题是:是否有可能使用caching的版本,如果照片没有改变,但如果它确实使用从服务器? 我尝试使用“必须重新validation”以及“最大年龄”或“无caching”无济于事。 如果有帮助,以下是路线代码: Module.exports.getPhoto = function(req, res) { var mime = require('mime-magic'), memberId = req.params.memberId, imgUrl; path.exists('public/images/memberPhotos/' + memberId, function(exists) { if(exists) { imgUrl = 'public/images/memberPhotos/' + memberId; }else{ imgUrl = 'public/images/memberPhotos/noPhoto.jpg'; } fs.readFile(imgUrl, function(err, img) { mime.fileWrapper(imgUrl, function(err, mimeType) { if(!err) { console.log(mimeType); res.writeHead(200, { 'Content-Type': mimeType, 'Cache-Control': "max-age=" […]

谷歌浏览器不会caching内容

我一直在寻找解决办法,但迄今没有。 我在Node.js / Express中dynamic地呈现HTML页面,通过SHA256生成一个ETag,对HTMLstring进行散列处理,然后通过nginx发送页面。 出于某种原因,Google Chrome浏览器不会caching页面,也不会为以前的ETag发送“If-None-Match”标头。 这是我的请求和响应标题: 请求: GET / HTTP/1.1 Host: dev.logan.oikoi.co Connection: keep-alive Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.82 Safari/537.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: km_ai=Q%2FR9nmmebaNLthhixes8jxMubzQ%3D; km_uq=; kvcd=1346083163009; km_vs=1; km_lv=1346083163 响应: HTTP/1.1 200 OK Server: nginx/1.2.3 Date: Sun, 26 Aug […]

html文件caching模块

是否有HTML模块文件caching。 例如,每次请求url /abc它都会searchcache文件夹中的文件/abc ,如果find,则将其读入stringvar,然后 res.send (htmlFromCache); 并在每个请求结束它将html写入cache文件夹。 所以硬页面只能加载一次,然后从文件caching中快速加载。

使用JavaScript将最新的数组索引存储在单独的数组中

我有一个对象的数组。 数组的键是使用.push()自动生成的。 有些对象可能会从数组中delete array[index]; 。 数组可能包含0到10K +条目中的任何内容。 这是声明和一些逻辑: var allClients = []; someFunction(client) { allClients.push(client); var callbackFunction = function() { var index = allClients.indexOf(client); try { delete allClients[index]; } catch (err) { console.error(err); } } } function getClientsMeetingCriteria(some_unique_id) { var filteredClients = allClients.filter(function(client) { return client.id_list.indexOf(some_unique_id) > -1; }); return filteredClients; } 现在上面的代码(它是IRL的非常简化的版本)适用于100-300个客户端,但是对于500+的目的而言,它变得太慢了。 问题是getClientsMeetingCriteria()可能asynchronous每秒调用10次。 我需要设置与some_unique_idcaching作为关键。 […]

如何强制客户端刷新Node.js中使用Jade呈现的JavaScript / CSS文件?

加。 这是在每次重新加载时引入?<version>号码的最佳方法。 如何在Node.js中使用Jade渲染文件时执行此操作? 还有什么关于CSS文件?

避免使用node.js在rest apicaching

我search了很多关于这个主题,为什么/如何避免restfull APIcaching,但我没有得到一个有用的答案。 我使用faker模块构build了expressjs api来生成随机json数据,但对于第一个请求,一切都很顺利,但浏览器或任何其他请求上的任何刷新都会显示相同的数据。 我想每个请求生成一个随机的数据,但我想在第一个请求后,nodejs模块被caching。 我在用着 nodejs:最新版本,expressjs:v4.0,faker:最新版本 我的代码如下: 在路由器文件中: router.js var router = express.Router(); router.get('/name', controller.name); . . 在控制器文件中: json.controller.js //Get name var name = require('name.model.js'); exports.name = function(req, res){ var randomName = name; return res.json(200, randomName); }; 在模型文件中: name.model.js var faker = require('faker'); var nameModel = {}; nameModel.name = faker.name.findName(); module.exports = nameModel; 任何一个可以帮助如何避免restAPIcaching? […]