Dra*_*ord 5 sockets ajax jquery
我需要构建一个可以处理100个查询/秒的Web级公共站点.我想使用Ajax使其具有交互性.Ajax必须在所有主流浏览器和所有合理的情况下都是防弹的(停止,从客户端重新启动页面;在离开终端后第二天返回;等等)服务器将是一个分布式Linux服务器场.
Jquery $ .post()似乎可以满足要求.
在过去,Ajax是通过聪明的方案实现的,以保持服务器和客户端之间的套接字打开.这种方法然后支持"Ajax Push",又名"HTTP Server Push"或"Comet",这是一种双向通信管道,允许服务器向客户端发起数据包.
我用这种Ajax方法看到的主要问题是它显然在服务器上占用了一个套接字,无限期很长一段时间.这似乎不会扩大规模.次要问题是,一夜之间打破调制解调器连接将破坏管道; 从保存的本地版本重新加载页面可能不会重新建立实时管道; 各种浏览器需要各种不可靠的黑客才能让Ajax首先运行.
基于发布请求,使用严格的"客户端拉取"Ajax模型似乎可以解决所有这些缺点.如果我能获得防弹实施基板,我很高兴放弃未经请求的服务器推送能力.
所以我使用的是一个简单的
调用,这对于Firefox和Safari来说似乎运行良好.
$.post( 'serverAjaxModule.php' ,
{mydata: Dataword },
function(output){ do_handle_results( output); });
但是,我不知道这是在做什么.我知道.post是.ajax的一个宏,并且似乎有一些命令,例如.ajaxSetup和.ajaxStart,它们的名称似乎使它们成为需求.然后就是jquery-ui.min.js
include,它几乎可以像设置一样运行.
那么我的问题是:
jquery $ .post是否适用于大规模使用?
使用旧的连续开放套接字范例实现$ .post,还是每次执行客户端拉动ajax消息时都建立新的套接字连接?启示?
我是正确的思维,我并不需要调用额外的东西,如.ajaxSetup也不.ajaxStart,等等,我可以先走一步,成功.post的调用$没有任何不寻常的后果是什么?
这个功能的jquery跨浏览器功能有多好?我可以依靠它简单地为所有合理的现代浏览器工作,还是我必须注意的已知的浏览器?
这种Ajax技术的方法在古代浏览器方面有多远?.post似乎是使用往返POST技术,它应该是完全通用和防弹的; 但我似乎记得使用旧技术的情况,其中一些浏览器太旧而无法支持Ajax,我们不得不费力地编写代码.现在,那些日子已经过去了,新的jquery?在文明的国际世界中,我有多担心非Ajax支持?
还有什么需要注意的吗?如果您刚刚开始构建可大规模扩展的实现,那么您希望有人告诉您关于创建动态,交互式Web体验的最重要的一点是什么?
非常感谢您的帮助.
$.ajaxSetup
不是必需的,但很有用:
$.post
则无法定义错误处理函数,并且调试将很困难 - 在这种情况下,您可以在 ; 中定义通用错误$.ajaxSetup
函数$.post
并接收需要显示的 HTML 数据,并且需要其元素将事件绑定到它们 - 您将能够定义应将哪些事件处理程序重新应用于这些新对象;$.ajaxStart
也不需要。
jQuery UI 是一个用户界面核心库,通常包含一些其他库,例如拖放元素行为、可排序元素行为和一些小部件,如手风琴菜单、模式消息框等。除非您打算实际使用它,否则不需要这样做用于构建前端的 API。
1 它没有(据我所知)不扩展的建设性理由;当然,如果您将其设置为每毫秒向服务器发送请求,则可能会使服务器崩溃(有许多并发用户)或使浏览器崩溃(打开无限循环的连接)或两者兼而有之,但无论哪种情况都是不好的工艺
2 不是,它不保持打开的套接字
3 是
4 它适用于包括 IE6 在内的任何浏览器 - 但某些浏览器(例如 IE6)可能会由于大量 JavaScript 代码(及其内存泄漏)而遇到更大的速度减慢
5 IE6
6
内存泄漏和/或已加载和未使用的内容通常会在刷新后被清除 - 特别是在 Chrome 中 - 另一方面,Firefox 是一个真正的内存吞噬者,即使没有任何活动,打开它 6-12 小时,你也会看到内存泄漏的增加内存使用情况。
归档时间: |
|
查看次数: |
436 次 |
最近记录: |