论坛首页 Web前端技术论坛

关于基于 XMLHTTP 做表示层开发的探讨

浏览 66176 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-07-05  
foxweimin 写道
冒犯了大虾dlee,不要拿板儿砖拍我.

别用“大虾”这类的词,我最讨厌别人管我叫大侠了,孩子气的东西。
0 请登录后投票
   发表时间:2004-07-15  
请教dlee几个问题:

我用JavaScript做了很多表示层的东西,从js解析dom树,js对象与页面元素对象的绑定,css风格动态的切换,到通过xmlhttp得到的xml流的解析。做多了有些经验,对js做表示的理解还算深入(由表单中onsubmit="return false;"想到的),同时也产生了下面的一些思考和疑惑:

1.XMLHTTP是页面主动向服务器请求数据,而服务器端数据变化了不会实时反映到前端的页面上来。如果系统对这种实时性要求较高,这个问题怎么解决?

2.用JavaScript确实能模拟出类桌面软件的交互性强的人机界面来,如树,菜单,各种下拉框等。但对于支持图元拖拽功能(就象rose那样)这样的交互要求更高的界面,就只能选择Applet或JWS了吧?感觉用JavaScript即使能模拟出来也够戗:)

3.浏览器中装载过多的js和css对性能影响到底有多大(因为这点最容易被别人拿来说事)?个人没感觉出来有多大,js对页面元素的遍历倒有一些延迟,但可以忍受, 但这些都是我定性的认识。你们做过这方面定量的测试吗?可用的测试工具有哪些?

4.在同一个页面中,如增删改操作后执行保存操作都可以不刷新页面;若跳转到另外一个页面你们是以传统的方式请求来刷新页面还是仍然以xmlhttp的方式请求数据再根据得到的数据通过JavaScript来展现页面?这也是xmlhttp用在局部还是彻底颠覆传统的开发方式的区别。根据你所说的你们形成了web表示层的整体框架,我想你们采用的应该是后者?

个人以为,对以信息显示为主,交互为辅或并举的应用,如电子政务,各个企业的信息网,采用JS,CSS和xmlhttp技术可以满足表示层交互的需求;但对于需要很强大的交互功能,如c/s时代甚至桌面程序时代真正的rich client,该技术有其局限性,一是开发较烦琐,二是得受限于浏览器,单各个浏览器的兼容性就不说了,IE的脆弱性就是一个隐患。若要实现真正强大的gui,兼顾c/s的强交互和b/s的自动更新发布,JavaWebStart是个不错的选择,甚至是唯一的选择?

另:非常赞同你的“mvc 解决了表示层与业务层分离的问题,,对GUI强大的交互和易用性方面不起任何作用;MVC的价值是体现给程序员的,而不是直接体现给用户的”这一观点,于心戚戚焉:)。

多谢![url][/url]
0 请登录后投票
   发表时间:2004-07-18  
1、setInterval
2、拖拽可以做。网上有这类例子。
3、如果单个 JS 文件的粒度较小,重用度较高,只加载要用到的 JS,对性能没有多大影响。复杂的 CSS 也没有问题,IE 解析得很快的。没有定量测试,我觉得也不需要。不喜欢的人永远不喜欢,即使你把定量测试结果给他看,喜欢的人永远喜欢。
4、我们是后一种方式。除了文件上传以外我们已经完全不用 FORM 了。

会者不难,难者不会。我们完全清楚如何封装 IE、Mozilla 的差异(目前支持这两大浏览器就够了)。用其它技术难道就没有复杂性了吗?JWS 也许是很好的选择,但是要额外安装 JRE。我并不认为 JWS 是唯一的选择。
0 请登录后投票
   发表时间:2004-07-19  
谢谢dlee。

window.setInterval是一种周期查询数据改变的方式,而不是数据改变时主动中断,改变显示的方式。能满足一般供用户浏览的信息更新,而不能满足工业实时系统中系统对实时性的要求。不过采用这样的技术做工业实时系统的少之又少,甚至就没有?有的希望站出来,让大家也见识见识:)
0 请登录后投票
   发表时间:2004-07-22  
这不错,开阔视野,越来越喜欢这个论坛了
0 请登录后投票
   发表时间:2004-07-24  
:!: 好好学习,天天向上
0 请登录后投票
   发表时间:2005-02-01  
如果用xmlhttp的形式,有个介于java编程人员和美工之间的角色----javascript编写者,是很重要的,我接触的几家公司都没有相应的职位,不知dlee公司是怎么人员安排的?
0 请登录后投票
   发表时间:2005-02-01  
liusong1111 写道
如果用xmlhttp的形式,有个介于java编程人员和美工之间的角色----javascript编写者,是很重要的,我接触的几家公司都没有相应的职位,不知dlee公司是怎么人员安排的?


刚毕业的本科生随便拉个过来不就可以了
0 请登录后投票
   发表时间:2005-02-01  
steve_gu 写道
谢谢dlee。

window.setInterval是一种周期查询数据改变的方式,而不是数据改变时主动中断,改变显示的方式。能满足一般供用户浏览的信息更新,而不能满足工业实时系统中系统对实时性的要求。不过采用这样的技术做工业实时系统的少之又少,甚至就没有?有的希望站出来,让大家也见识见识:)


其实所谓的实时在底层也都是轮询的方式,只不过轮询频率更高。
一般用浏览器做定期刷新主要的问题在于多个终端的并发性以及网络传输的延时
秒级的还可以用用,毫秒级的就不行了。
0 请登录后投票
   发表时间:2005-09-23  
关于使用ajax可以模拟c/s的方式来实现b/s的问题。我有一个想法不知道算不算很可笑,上面好像也有人提过类似的想法。就是走一点极端,表示层全部使用html和javascript实现。然后可以通过类似c/s的方法,直接把客户端页面安装到客户机器上,直接在客户机通过执行页面与服务器端进行交互(由于是纯html+javascript所以客户端也没有安装其他服务器的麻烦)。这样不就可以省下来很多下载html和javascript文件的时间和带宽了吗(因为不用下载,这样甚至还可以满足某些对页面flash效果的过分要求)?不知道这种想法有什么缺陷?希望大家指正
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics