关于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问题仍然存在.
题:
使用PUT或DELETE方法可以实现CSRF吗?或者PUT或DELETE的使用是否会阻止CSRF?
window.onmessage = ...
window.postMessage('1', '*');
window.postMessage('2', '*');
Run Code Online (Sandbox Code Playgroud)
postMessage(http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#queue-a-task)是否保证事件的顺序?
来自:
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) 这是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 ...
谢谢!