Index的最后一个部分 loginCheck(form) 是验证表单的内容,这里大部分理解,但是有一个问题就是
jwchats[jid]=window.open('jwchat.html',makeWindowName(jid),'width=180,height=390,resizable=yes');这句不是很理解,当然这个是要弹出新的窗口。也就是登陆以后的窗口。

现在开始jwchat.html

包含的js文件为
<script type="text/javascript" src="config.js"></script>
<script type="text/javascript" src="shared.js"></script>
<script type="text/javascript" src="browsercheck.js"></script>
前三个已经叙述过了,这里叙述下面两个
<script type="text/javascript" src="sounds.js"></script>
和名字一样,定义了一个 SOUNDS对象,这里可以设置一些声音效果,不过源代码里面都是flash文件类型
<script type="text/javascript" src="statusLed.js"></script>
和swithStyle.js文件的功能类似,这里定义了一些图片对象,用户一些状态的样子

下面要到最重量级的文件了
<script type="text/javascript" src="JSJaC.js"></script>
这里真的很重要,注视为 <!-- JabberConnection --> 翻译过来就是Jabber连接文件
实际上这里定义了一个 JSJaC 对象,然后调用了里面的load方法,实际上引用了更多的js文件,个人认为这里可以修改成,
<script type="text/javascript" src=” xmlextras.js”></script>
<script type="text/javascript" src=” JSJaCPacket.js”></script>
<script type="text/javascript" src=” sha1.js”></script>
<script type="text/javascript" src=” json.js”></script>
<script type="text/javascript" src=” qm_cookie.js”></script>
<script type="text/javascript" src=” JSJaCConnection.js”></script>
<script type="text/javascript" src=” JSJaCHttpPollingConnection.js”></script>
<script type="text/javascript" src=” JSJaCHttpBindingConnection.js”></script>
目前为个人观点,没有经过测试,先进行代码分析,明天进行相关测试(已经经过测试,这样修改不可以,因为这里是替换所有文档里面的JSJaC文件为这些文件。当然可以考虑在所有的页面里面全文替换,不过很不值得,呵呵。)

接下来逐个分析这些文件
1. Xmlextras.js 用于创建AJAX相关的对象
getDomDocumentPrefix() 用于获得机器内置的xml解析器。
getXmlHttpPrefix() 用于获得AJAX 对象
XmlHttp() 用于创建 AJAX 的XmlHttp对象
没有其他的函数了,不过自动执行了一些程序,用于创建一些对象或者方法:创建loadXML 方法为Mozilla浏览器创建xml 获取方法
学习了 prefix属性的作用是:设置或返回指定节点的命名空间前缀。

2. JSJaCPacket.js
JSJaCPacket(name) 定义jsjac的包 用于创建传送的xml流
JSJaCPresence() 拼装/解析 presence 标签
JSJaCIQ() 拼装/解析 iq标签
JSJaCMessage() 拼装/解析 message 标签
JSJaCPWrapNode(node) 调用上面三个的那一种对象。
3. sha1.js 这个文件前面说过了
4. json.js 此文件很简单却很繁琐,但是主要用于确定数据类型的文件,包括确定是不是某个对象的实例等
学习了 result = object instanceof class
参数
result
必选项。任意变量。
object
必选项。任意对象表达式。
class
必选项。任意已定义的对象类。
说明
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
5. qm_cookie.js
用户cookie的创建,读取,删除
6. JSJaCConnection.js
太重要的文件了,如何重要,继续解读
首先4个变量 JSJaC_HAVEKEYS,JSJaC_NKEYS,JSJAC_INACTIVITY,JSJAC_ERR_COUNT用于定义是否使用关键字,关键字的数量,设置poll定的频率(这里不是很确定这样理解对不对)JSJaC_CheckQueueInterval 设置程序的发送或者poll频率

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()