http://lostinet.dns2go.com/sarc/chat.asp
解决方案 »
- 【原创】JavaScript 图片预览效果
- ajax类问题
- 如何一个动作激发多个事件
- 就像在线客服那样随滚动条一起移动的js代码?
- 请问javascript的节点问题?
- js问题
- 以下是标题切换图片,但是有个遗憾,下面的文字会随着第三张图片的切换而上下抖动,哪位朋友帮忙修改下,100分送上,谢~急~
- 关于window.onload的问题
- 秋水无恨大侠的一段Jscript代码,我 想改成javascript的,以便Netscape能用,请各位大侠们帮忙
- 安卓版微信打开HTML5视频退出全屏后页面底部多了一条菜单
- 大家看看!!这个问题怎么办?
- 哪里有EMCAScript、JavaScript、JScript各个版本差异的对照表?
测试而已
如果真的要做好的,那么布局也不是这样了>>有时不停的替我发同一句话
恩
我还不清楚发生这个的原因
按发送后没有反应...
环境:win2000pro+IE6+msxml4.0
不错耶
呵呵。。
签名??哪?在哪???
不错耶
呵呵。。
签名??哪?在哪???
我替楼主把这段贴出来算了sarc 是 simple asp remote call 的缩写.意思是简单ASP远程调用。适用场合是内部使用。除了实现远程调用,没有考虑扩展性。
如果您用ASP,暂时没有往dotNet过度,那么这个是一个折中的方案。或者你已经使用IFRAME,或者手动配置XMLHTTP程序来进行DHTML和服务器间的交互了。
但是这个过程非常麻烦。如果每做一次,都要写一大堆程序来完成一个功能,那是很辛苦的时。
所以我决定把XMLHTTP封装起来,成了 SarcClient使用SarcClient,就可以方便地访问服务器上的服务。其过程也不复杂:首先,服务器要有一个定义SARC的ASP程序。
这个程序需要#include上sarc_begin.asp和sarc_end.asp
然后根据指定格式配置服务。然后,客户端要使用sarc.js,用 SarcClient 函数取的服务器上的服务。详细情况如下:
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃服务器端 sarcsample.asp --->> function
┃
┃ --->> sarc definitions
┃
┃
┃ sarc_begin.asp+sarc_end.asp
┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
||
||传递SARC的描述XML
||
||接收SARC请求
||
||发送SARC结果
||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃客户端 sarc.js --->> SarcClient
┃
┃ --->> sarc definitions
┃
┃ --->> sc.FuncName
┃
┃
┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛其工作原理是:
服务器上已经有了多个函数的定义了。
用户根据函数,配置 sarc definitions ,使 sarc_begin.asp 能识别函数的定义。自动倒出定义的XML格式。
客户端使用 : var sc=SarcClient("sarcsample.asp");来对这个定义XML进行解析和处理。
(请看 http://lostinet.dns2go.com/sarc/sarcsample.asp ,里面就是一系列函数的定义。包括输入和输出)
其中,sarcsample.asp是GET的形式。sarc_begin.asp接受到GET请求,就把sarc definitions以XML格式返回。
当SarcClient用xmlhttp接收到sarcsample.asp返回的XML后,就对XML进行解析,然后生成相应的函数。
如: sc.GetYourIP , sc.GetDateTime调用函数的时候,
sc.FuncName回根据其参数,生成XML格式的请求,用XMLHTTP发送(POST)到sarcsample.asp。
sarcsample.asp接收到请求,就把XML请求转成实际的数据,然后调用ASP本身的函数。
ASP的函数执行完,sarcsample.asp又会把结果转换成XML,送会客户端。
客户端得到回应后,会把回应的XML转换回本地变量。
这个过程是: sc.FuncName(var1) 调用函数(ASP函数的代理)
==经过SarcClient的数据转换==>> <request>var1</request> 自动转换成XML
==由XMLHTTP负责发送出去(POST)==>> sarcsample.asp 接收请求
==sarc_begin.asp还原XML数据==>> AspFunction(var1) 调用服务器函数
==res=AspFunction(var1),由sarc_begin.asp进行编码==>> <response>res</response> 生成结果==由XMLHTTP接受结果==>> res=sc.FuncName(var1) 得到结果。
由这个过程可以看到,这个XML是作为低层传输的。用户根本不需要考虑XML具体是怎么做。
只需要遵守协议,合法调用一个远程函数的代理就可以了。函数的执行有两种方法:同步和异步。
同步的方法是,直接调用sc.FuncName
例如
var ip=sc.GetYourIP();
那么这个一句,必须等服务器响应完毕后才能返回。
优点是编程起来非常简单,条理清晰,不过浏览器在这个过程不会响应。
在调用速度很快的时候,可以直接使用这个方法。异步调用是。
sc.FuncName.CreateCall(funcCallBack)(param1,...);
其中FuncName是在服务器上定义了的。CreateCall是固定的名字。
funcCallBack是接受结果的函数。例如:
sc.GetYourIP.CreateCall(funcOnIP)();
function funcOnIP(oCall)
{
ip=oCall.GetResult()[0].Value;
}
这个过程,就是当sc.GetYourIP.CreateCall(funcOnIP)();一但执行,就立刻发送请求。并且立刻返回。
一直到服务器响应了,funcOnIP就会执行。
其中oCall.GetResult()是取返回结果的。因为结果是一个数组,数组元素是一个对象。有Value,Type,Name等属性。更详细的用发,看例子。
(sarc_begin,sarc_end,sarc.js是负责封装代码的文件。有兴趣的可以看看)