小编4es*_*n0k的帖子

WebSockets协议与HTTP

关于websocket和HTTP有很多博客和讨论,许多开发人员和网站都强烈支持websockets,但我仍然无法理解为什么.

例如(websocket爱好者的参数):

HTML5 Web套接字代表了Web通信的下一个发展 - 一种全双工双向通信通道,通过Web上的单个插槽运行.(http://www.websocket.org/quantum.html)

HTTP支持流媒体:请求正文流(您在上传大文件时使用它)和响应正文流.

在与WebSocket连接期间,客户端和服务器每帧交换2个字节的数据,而连续轮询时则为8千字节的http头.

为什么这2个字节不包括tcp和tcp协议开销?

GET /about.html HTTP/1.1
Host: example.org
Run Code Online (Sandbox Code Playgroud)

这是~48字​​节的http标头.

http chunked编码 - http://ru.wikipedia.org/wiki/Chunked_transfer_encoding:

23
This is the data in the first chunk
1A
and this is the second one
3
con
8
sequence
0
Run Code Online (Sandbox Code Playgroud)
  • 因此,每个块的开销并不大.

这两个协议都可以在TCP上运行,因此所有与长期连接的TCP问题仍然存在.

题:

  1. 为什么websockets协议更好?
  2. 为什么要实现而不是更新http协议?

ajax comet http websocket

297
推荐指数
6
解决办法
12万
查看次数

使用PUT或DELETE方法可以实现CSRF吗?

使用PUT或DELETE方法可以实现CSRF吗?或者PUT或DELETE的使用是否会阻止CSRF?

security csrf

49
推荐指数
4
解决办法
2万
查看次数

13
推荐指数
2
解决办法
3655
查看次数

Timsort如何按降序对数据执行操作?

来自:

http://svn.python.org/projects/python/trunk/Objects/listsort.txt

和:

http://en.wikipedia.org/wiki/Timsort

我知道,Timsort在进行优化时会有一些优化a0 > a1 > a2 > ...,但下一个数组呢:

10000,10000,9999,9999,9998,9998,....,9,9,8,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1,0,0

这种阵列的时间效率是多少?

(整数被用来简化一个例子,需要稳定的排序)我做了一些测量,看起来,这样的数组对于Timsort来说不是"好"的情况.

实际上,JDK中的TimSort http://cr.openjdk.java.net/~martin/webrevs/openjdk7/timsort/raw_files/new/src/share/classes/java/util/TimSort.java 有一个方法"countRunAndMakeAscending"

@SuppressWarnings("unchecked")
private static int countRunAndMakeAscending(Object[] a, int lo, int hi) {
    assert lo < hi;
    int runHi = lo + 1;
    if (runHi == hi)
        return 1;

    // Find end of run, and reverse range if descending
    if (((Comparable) a[runHi++]).compareTo(a[lo]) < 0) { // Descending
        while(runHi < hi && ((Comparable) a[runHi]).compareTo(a[runHi - 1]) < 0)
            runHi++;
        reverseRange(a, lo, runHi);
    } else …
Run Code Online (Sandbox Code Playgroud)

sorting mergesort timsort

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

DOM Events API:事件委托和stopPropagation

这是jQuery 1.7的代码:

<div class="test">
  <div class="bu">
    <a>
      bu here
    </a>
  </div>
</div>
<script src="http://code.jquery.com/jquery-1.7.js"></script>
<script>
$(document).on('click', '.test', function () { alert(0); return false; });
$(document).on('click', '.bu', function () { alert(1); return false; });
$(document).on('click', '.bu', function () { alert(2); return false; });
</script>
Run Code Online (Sandbox Code Playgroud)

点击.test> .bu将警告"1"并警告"2",但不警告"0"

我的问题是:如何在没有jQuery的情况下(在本机DOM API上)做同样的事情?似乎,如果没有实现我自己的库,我无法使用Native DOM API ...

谢谢!

javascript jquery jquery-events

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