小编Bra*_*aby的帖子

如何使连接/表达在特定目录上使用非过期缓存

我正在开发一个使用connect/express和node.js的应用程序.它使用像这样的"静态"中间件:

var express = require("express");
var io = require("socket.io");

var app = express.createServer(
    express.static(__dirname + '/static')
);
app.listen(process.env.PORT || 8080);

var listener = io.listen(app);
var lobby = listener.of("/lobby");
lobby.on("connection", function (socket) {
    // etc etc etc
});
Run Code Online (Sandbox Code Playgroud)

在内部./static,有一个文件夹,./static/mp3包含应用程序使用的88个音频文件.

虽然回访的访问者已经缓存了这些文件,但令他疯狂的是他们仍然发送了88个http请求,询问他们的缓存副本是否已过期. 如何仅为此文件夹强制执行Expiresmax-age缓存?

caching http connect node.js express

8
推荐指数
1
解决办法
5362
查看次数

在析构函数中创建/编写PHP文件

file_put_contents()析构函数中调用时,它会导致文件写入SERVER_ROOT...(Yikes!)解决方法?

tldr:

我想缓存一个数组,可能包含序列化的类实例.我想,现在,我会编写一个使用unserialize()/file_get_contents()和实现缓存的类,serialize()/file_put_contents()然后在更通用的Cache类后面隐藏它的功能.(我不知道我的客户主机是否有共享内存或PEAR等)

<?php
    class CacheFile {
        private $filename;
        private $data;
        private $dirty = false;

        function __construct($filename) {
            $this->filename = $filename;
            $this->load();
        }

        function __destruct() {
            // Calling file_put_contents within a destructor causes files to be written in SERVER_ROOT...
            $this->flush();
        }

        private function load() {
            if(!file_exists($this->filename)) {
                $this->data = array();
            }
            else {
                $this->data = unserialize(file_get_contents($this->filename));
                // todo
            }
            $this->dirty = false;
        }

        private function persist() {
            file_put_contents($this->filename, serialize($this->data));
            $this->dirty = false; …
Run Code Online (Sandbox Code Playgroud)

php serialization caching destructor

5
推荐指数
1
解决办法
1277
查看次数

标签 统计

caching ×2

connect ×1

destructor ×1

express ×1

http ×1

node.js ×1

php ×1

serialization ×1