论坛首页 Web前端技术论坛

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

浏览 66179 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-03-21  
jaqwolf 写道
dlee,我视图用你所说的方法构建view层,觉得客户端是胖了,但是服务端并没有瘦,因为多了构建 xml的过程,我所能感受到的好处仅仅是页面可以动态的从服务断取得数据,而且页面可以局部刷新,这是xmlhttp带来的好处。但是要求局部刷新的地方并不多。这样以来,本来是:
client请求->服务断处理请求,传回回应
这样一个过程,变成了:
client请求->服务端传回html->html中的xmlhttp再次从服务断读取数->server传递xml到客户端->client

现在我可以把表示层整个前推到浏览器端来做,服务器端只剩下了业务层和集成层,你说服务器是不是变瘦了?
你说的流程没有错,这里的关键是不离开页面,你做的一些中间工作就可以保留下来。其实你可以在一个页面上面做很多的事情,例如你可以把这个页面当作是一个 Excel 工作表。可是如果你不用 XMLHTTP,而是使用基于 form 的请求/响应模式,那么你就不得不为了一点点修改都要频繁地更换页面,你觉得哪种方式更合理或者更方便呢? 这点我和 lu_icicle 的意见完全相同。
jaqwolf 写道
我只是在局部采用xmlhttp。不知道我对你的方法理解是否正确。

我们现在已经全部基于 XMLHTTP 了,所以我相信 XMLHTTP 并不是局部的真理。不过由于带宽的限制,XMLHTTP 目前确实不太适合广域网的应用。

返回的结果如果有标准的格式,写一个通用的解析函数就可以了(JS 中的 evaluate 可是很强的)。IE 中解析 XML  DOM 的速度是很快的。或者使用 XSLT 将结果直接转换为需要显示的内容(例如一个 table)也是一种好的方法。
lu_icicle 写道
这种方法完全不可取 三层结构的结构是完全有必要的
前台的页面里的内容 对用户完全可见
谁在前台用JavaScript 发送一个 delete from .... 活活
Script 发送的只能是业务请求 不能是业务的具体实现

这里我只是提出了一种假设,就是基于 XMLHTTP 可以模拟 C/S 结构的开发,因为简化了体系结构,所有有利于开发出各种 RAD 工具。当然这样一定要解决好安全性问题。其实你用 TOAD 访问 Oracle 的时候不是也是 C/S 结构?难道就不安全吗?多层结构和安全性并不一定能划等号。
基于 XMLHTTP 做表示层开发也完全可以实现 3 层结构。甚至也可以实现 MVC,这时候 Controller 仍然用 Servlet 实现(不过这里是通过 XMLHTTP 向 Servlet 发送请求和接收响应),只不过这里的 View 由 JSP 变为了 HTML+JS,以前用 JavaBean 封装表示层需要的数据,现在改为由 XML 封装表示层需要的数据。不过现在表示层与业务层的边界与浏览器、服务器的边界完全重合。甚至你都不需要实现 MVC 就可以做到表示层和业务层相分离了。表示层开发人员现在只需要掌握好 JS 就可以了。
jaqwolf 写道
问题不在这个地方,问题在很多页面不需要局部刷新,或者没有很强的连续性的时候-也就是不需要保留状态的时候,xmlhttp+js作为整体的view-tier方案就优势不明显了。

这其实是一种很浪费的工作方式,原因在我上周的讲稿中已经说的很清楚了。即使是这种方式,你也可以完全抛开 form 而采用基于 XMLHTTP 的开发方式。
lu_icicle 写道
”前台有一个框架来解析收到的数据“ 我是使用 XSLT 我觉得每个页面都有自己的数据和表现样式 所以每个页面都有配套的 XSLT 如何用一套的? 请指教

我们没有用 XSLT,到不是不会用,而是考虑到开发效率。如果你用 XSLT 做过很多开发你会发现,其实 XSLT 很多时候只是“看上去很美”。
fsword 写道
dlee有没有兴趣谈谈对于thin client的想法啊?我也不是很同意这个趋势,因为市场已经有了很多功能强大的client,即使考虑历史原因也不可能一统天下,不过我的看法可能不是很深入,抛个砖,希望有人讨论。

我的看法是 PC 是永远都不可能成为 thin client 的。原因很简单,PC 的处理能力只有越来越强,而且自然有人会将其能力发挥到极限,例如 M$。thin client 只是一场 IBM、Sun、Oracle 一类传统的服务器厂商为了重新瓜分市场而精心制造的 marketing hype。以后你还会听到很多很多这类的 marketing hype,例如什么“按需计算”。以后我们要喝水不用自己打井了,付了钱 IBM 就会把一个水龙头接给我们的。呵呵,多容易啊!
0 请登录后投票
   发表时间:2004-03-21  
dlee说到:IE 中解析 XML DOM 的速度是很快的。

我虽然没有经过具体的研究,但是对这个结论暂时还不是很同意。 我做过一段时间的xsl+xml的开发,xml一大起来IE真的顶不住啊,有明显的迟缓甚至失去反应.
0 请登录后投票
   发表时间:2004-03-21  
XML 开发不等于 XSLT。如果你还没有忘记数据结构的基础知识你就会明白,DOM 树的检索/遍历本来就是耗费时间和内存资源的操作,XSLT 要同时检索两棵 DOM 树,更是 double 了这种耗费。这正是我说 XSLT 只是“看上去很美”的原因。
其实 IE 的 selectSingleNode 和 selectNodes 还是很快的。我们为了减少检索的次数,一般是做了一次后就把结果保留下来,这样下一次就不需要重新检索了。

我发现很多朋友对 XML 的理解是非常粗浅的,建议大家去补习一些 XML 方面的基础知识。还有数据结构,不要学校里学过的出了校门就丢回给老师了。我们要重新思考一下我们是否真的应该做一个印度那种只懂冒泡排序法的“软件蓝领”了。
0 请登录后投票
   发表时间:2004-03-22  
恩,我确实对xml的认识还是比较粗浅的。目前对IE的处理只懂得xsl还有一点点data binding的东西,xmlhttp用过,但只是一个最简单的提交,算是没有掌握。
0 请登录后投票
   发表时间:2004-03-22  
用xmlhttp方法再ie中就可以看到提交的数据,因为是用javascript传递的xml,那么如何保证安全性?
黑客们可能很容易做个小东西给你提交不少的无效数据,
这种情况如何防范?
0 请登录后投票
   发表时间:2004-03-22  
当然有防范。一种最简单的方法是登录成功后在客户端的 Cookie 里保存一个 sessionid,以后每次提交请求的时候得到这个 Cookie,若得不到则报错。
其实方法很多,为更安全起见还可以使用 HTTPS。
0 请登录后投票
   发表时间:2004-03-23  
请问一下,这个XMLHTTP的模式,有没有能在网上看到的示例?
0 请登录后投票
   发表时间:2004-03-23  
dlee, 请教一个问题,
xmlhttp,和xml-rpc这两者你有没有做过比较?
作为和xmlhttp非常类似的协议-xmlrpc。用法和
用途都比较类似。不过是后者并非ms一家支持。听起来能适应更多的浏览器。你有否考虑过使用xmlrpc?
0 请登录后投票
   发表时间:2004-03-23  
jaqwolf 写道
dlee, 请教一个问题,
xmlhttp,和xml-rpc这两者你有没有做过比较?
作为和xmlhttp非常类似的协议-xmlrpc。用法和
用途都比较类似。不过是后者并非ms一家支持。听起来能适应更多的浏览器。你有否考虑过使用xmlrpc?


XMLHTTP最大的好处就是IE有控件支持。要是用XML-RPC,还得自己去写收/发XML封包的控件,那不烦死了?
0 请登录后投票
   发表时间:2004-03-24  
dlee, 请教一个问题,
如何使用jsp写服务器端生成XML文件?最好有个简单的例子。
client我是使用http://webfx.eae.net/的例子。
0 请登录后投票
论坛首页 Web前端技术版

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