小编Wil*_*lem的帖子

我想与304响应一起发送哪些标头?

当我发送304响应时.浏览器将如何解释我与304一起发送的其他标头?

例如

header("HTTP/1.1 304 Not Modified");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
Run Code Online (Sandbox Code Playgroud)

这是否会确保浏览器不会发送另一个有条件的GET请求(也没有任何请求),直到$ offset时间"用完"?

另外,其他标题呢?

我应该像304一样发送这样的标题:

header('Content-Type: text/html');
Run Code Online (Sandbox Code Playgroud)

我必须发送:

header("Last-Modified:" . $modified);
header('Etag: ' . $etag);
Run Code Online (Sandbox Code Playgroud)

为确保浏览器在下次$ offset已"用完"时发送条件GET请求,或者只是保存旧的Last Modified和Etag值?

发送304响应标头时是否还有其他事项需要注意?

php get http-headers http-status-code-304

16
推荐指数
2
解决办法
7643
查看次数

WebRTC数据通道服务器向客户端进行UDP通信

是否可以在Node.js上使用WebRTC数据通道,以模仿Socket.io(WebSockets)的功能(最好是API),除非使用UDP?

本质上,我希望有一个运行Node.js的服务器,浏览器客户端可以通过JavaScript建立全双工双向UDP连接.

javascript udp node.js webrtc

13
推荐指数
1
解决办法
1949
查看次数

在Javascript数组中查找元素的有效方法

我正在使用带标题的数组.每个标题索引对应于数据库中的id,该id包含该给定标题的html.

假设我有一个包含其中一个标题的字符串.

title = "why-birds-fly";
titles[] // an array which contains all the titles
Run Code Online (Sandbox Code Playgroud)

要使用字符串"title"来获取相应的ID,我可以这样做:

for (i = 0; i < titles.length-1; i++) {
  if (titles[i] == title)
    return i+1;
}
Run Code Online (Sandbox Code Playgroud)

我可以使用的另一种方法是创建一个关联数组和titles数组,这与titles完全相反.也就是说,它使用字符串作为索引并返回数字.

titles_id {blah:0,why-birds-fly:1,blah2:2}
Run Code Online (Sandbox Code Playgroud)

然后我可以通过以下方式访问ID:

return titles_id[title]+1;
Run Code Online (Sandbox Code Playgroud)

考虑到CPU,内存等,最有效的是什么?

另外,如果我的逻辑完全错误,请告诉我.

谢谢威廉

javascript complexity-theory big-o search associative-array

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

缓存AJAX请求

我正在向一个PHP应用程序发送AJAX GET请求,并希望缓存请求返回以供以后使用.

由于我使用GET,因此不同的请求请求不同的URL(例如getHTML.php?page = 2和getHTML.php?page = 5).

我需要在PHP应用程序中声明哪些标头,以使客户端浏览器以正确的方式缓存请求URL内容?我是否需要在处理AJAX请求的Javascript中声明任何内容(我使用jQuery的$ .ajax函数,它具有缓存参数)?

我如何处理更改例如getHTML.php?page = 2的内容的编辑,以便客户端不会回退到缓存版本?向GET请求添加另一个参数,例如getHTML.php?page = 2&version = 2是不可能的,因为无需任何检查(最好是我想要的方式),自动创建到请求的URL的链接.

当我尝试AJAX请求缓存的请求URL时,浏览器将如何反应?AJAX请求会立即返回成功吗?

谢谢

威廉

javascript php ajax jquery caching

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

你可以在.htaccess中有多少RewriteRules而没有麻烦?

简单的问题.我的.htaccess中可以有多少RewriteRules是否有限制,或者我可以将其中的大量RewriteRules放在那里,而Apache不会对我产生任何问题?

是否存在服务器简单潜水的相对限制因为需要迭代的许多规则?

谢谢!

apache .htaccess mod-rewrite limit

7
推荐指数
2
解决办法
3186
查看次数

为什么浏览器不在AJAX请求中缓存301?

这是XMLHttpRequest:

$.ajax({
    method: "get",
    url: "getPage.php",
    data: $data,
    dataType: 'json',
    timeout: 2000,
    success: function(result) {
        handleContent(result);
        }
    });
Run Code Online (Sandbox Code Playgroud)

这是getPage.php?data = data

header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
header("HTTP/1.1 301 Moved Permanently");
header("Location: $location);
Run Code Online (Sandbox Code Playgroud)

这是$ location:

header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header("Cache-Control: max-age=" . $offset . ", public");
print $print;
Run Code Online (Sandbox Code Playgroud)

客户端浏览器正确缓存$ location.但是它不会在getPage.php?data = data中缓存重定向

每次调用ajax-request时,它都会请求GET getPage.php?data = …

php apache http-headers

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