我正在寻找使用jQuery ajax威胁大量请求的最佳实践。基本上我有这种情况:
var req = 0;
var p; // global scope
function getServerLoad() {
p = $.ajax({
url: 'system/sysload/get-server-load/'+req,
method: 'get',
dataType: 'json',
timeout: 1000,
success: function(r) {
if (r.success) {
// print server loads
} else {
// abnormal situation
}
},
error: function() {
// http error or timeout action
p.abort();
}
});
req++;
}
在我的Firefox 15中查看Browserscope我最多可以连接17个连接,每个主机名只能连接6个连接。
在这种情况下,我尝试了一种解决方案:在DNS上创建一个通配符CNAME并将r [1 ... 999999] .mydomain.com指向www.mydomain.com,但Firefox不允许连接到子域。我认为会像XSS一样受到威胁。
我有另一个想法分析Google Suggest和这篇文章(葡萄牙语)。
http://danilow.wordpress.com/2009/05/28/google-suggest-nao-e-ajax/
在简历中,在Google Suggest的第一版中,它不使用Ajax。它通过创建和替换动态<script>
元素来获取请求 - 它是一个智能解决方案,因为一些旧的浏览器不支持XmlHttpRequest组件,并且通过在用户键入下替换旧请求,搜索项将只有1(一个)并发搜索请求 - 这是因为每个新的onkeyup
事件都会覆盖最后一个请求。
顺便说一句......我在stackoverflow中看到了类似的问题,但特别是在Linux / PHP / Apache&lt;&lt; - 反向代理 - &gt;&gt; nginx的环境中,有人有一个很好的解决方案吗? / p> PS:抱歉英语不好。
提前致谢!
答案 0 :(得分:0)
最后,我找到了一个创建DNS wilcard的解决方案,例如* .myappdomain.com
在跨域使用JOSNP进行ajax,就像一个魅力。