论坛首页 Web前端技术论坛

从JSF和Ext看WebUI开发--给对JavaScript 有恐惧感的朋友

浏览 75316 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-04-27  
hax 写道
初步看了achun的jct,不是很看好。看上去jct比较接近传统模板,只是放到了前端。希望能看到jct更多的文档。

有点欣慰,只要你看了,我就高兴。
不追求你能认同,因为都认同了这个世界就不会进步了。
不同才能进步。如果能启发你新的思路那就更好了。
另外就是你说什么有些问题js模板同样也解决不了,是什么?我对具体问题的热情,比纯理论探讨更有兴趣。
举个具体的问题。
0 请登录后投票
   发表时间:2008-04-27  

to achun:

“页面需要不停的刷新”?没看懂

主从表的录入模式,主要考虑业务本身的事务(transaction)特性:如果主记录可以独立存在(既,无子记录的主记录也是有意义的),则插入主记录的操作是独立的事务,插入子记录也是独立的事务;如果主记录不可独立存在,则插入主记录和插入子记录应该设计成同一事务。无论是前者,还是后者,我都没看出为何要“页面需要不停的刷新”,麻烦再说清楚点:-)

0 请登录后投票
   发表时间:2008-04-27  
icewubin 写道
对呀,如果不是为了点击量,不停刷新太消耗服务端资源了吧。


这里有两个问题。用户体验相对来说更加重要。至于服务器性能倒是次要问题。
0 请登录后投票
   发表时间:2008-04-27  
晕,“页面需要不停的刷新”,icewubin和hax都看懂了,就我没看懂,看来这里又用重大的个人工作背景差异!
0 请登录后投票
   发表时间:2008-04-27  
to leebai:
就举你的xjawa包里面的例子吧:
xjawa后台里面有个对文章管理的模块,里面的数据都是主帖,你的例子里没有从贴(分页帖子),
如果有的话(很多文章都有的,这可以随处看到),
你的从贴信息如何显示?
如果要修改主贴或者从贴,按你现在的演示,肯定要刷新多次的。
因为在没有从贴的先在你的修改就要刷新页面,要是带上从贴刷新就更烦了。
你不要说这符合习惯,习惯是可以改的,
再说你可以说这符合普通用户的习惯,如果是你做文章的审核,你自己也这样不停的切换刷新页面,你不烦么?
而且现在你的页面,每次修改的时候,表格状的信息列表都消失了,如果有很多记录要处理,而且还是记录分页的,每次刷新完了之后,重新定位到上次某个记录分页,这个信息你放到那里?cookie?session?后退?
如果是无刷新的页面这些问题可能就都解决了,而且操作起来会很舒服。
所以说用户也许不需要,可我们自己的编辑审核人员确实需要,给自己方便那是提高直接的效率,是有意义的。
其实我上面的这个说法已经是妥协的说法,退一步的说法了,
所谓的用户习惯,户体验度,那是因为你没有给他更好的选择,给了他更好的选择不信他不要。
页面上不只是有给最终浏览者看的方式,还有信息管理者的需求。
0 请登录后投票
   发表时间:2008-04-28  
太晚了,简单回答JJYAO同学:
1、组件接口是封装的,而且符合你的简洁原则,只不过是接收数组作为参数,不知你为何觉得不妥?

2、你说的Action就是我说的Web层,已去掉;我说的Action就是业务方法。

3、如1

4、感觉你还是没有意识到(可能和你的工作背景有关):B-UI中,页面导航根本不是问题。

5

6、多文件批量查找、替换其实都很简单,关键是善用工具。一直感觉改XML文件不如改代码。我用这个做项目6-7年了,还没见到后台要变包名,方法名的情况。

谢谢,先睡觉去了。
0 请登录后投票
   发表时间:2008-04-28  
hax 写道
icewubin 写道
对呀,如果不是为了点击量,不停刷新太消耗服务端资源了吧。


这里有两个问题。用户体验相对来说更加重要。至于服务器性能倒是次要问题。


如果使用户量大的网站,会很容易导致服务器的负载数下降的,既然你说“用户体验更重要”可能使我对讨论的问题理解有问题。至少觉得,刷新的频率要控制一下,稍微智能点,开个玩笑,比如用户手动操作很久不动了,就不要再刷了,呵呵。
0 请登录后投票
   发表时间:2008-04-28  
achun 写道
to leebai:
就举你的xjawa包里面的例子吧:
xjawa后台里面有个对文章管理的模块,里面的数据都是主帖,你的例子里没有从贴(分页帖子),
如果有的话(很多文章都有的,这可以随处看到),
你的从贴信息如何显示?
如果要修改主贴或者从贴,按你现在的演示,肯定要刷新多次的。
因为在没有从贴的先在你的修改就要刷新页面,要是带上从贴刷新就更烦了。
你不要说这符合习惯,习惯是可以改的,
再说你可以说这符合普通用户的习惯,如果是你做文章的审核,你自己也这样不停的切换刷新页面,你不烦么?
而且现在你的页面,每次修改的时候,表格状的信息列表都消失了,如果有很多记录要处理,而且还是记录分页的,每次刷新完了之后,重新定位到上次某个记录分页,这个信息你放到那里?cookie?session?后退?
如果是无刷新的页面这些问题可能就都解决了,而且操作起来会很舒服。
所以说用户也许不需要,可我们自己的编辑审核人员确实需要,给自己方便那是提高直接的效率,是有意义的。
其实我上面的这个说法已经是妥协的说法,退一步的说法了,
所谓的用户习惯,户体验度,那是因为你没有给他更好的选择,给了他更好的选择不信他不要。
页面上不只是有给最终浏览者看的方式,还有信息管理者的需求。

 

 基本明白你说的意思了,好像和主从表无关,应该就是那个经典的问题:

信息列表中的条目增、删、改时,信息表单页和信息列表页之间如何互动,信息列表页的列表显示如何更新。


1、先说列表页与表单页如何互动(增、改时)。

C/S和桌面应用一般是先显示列表界面,再打开单独的Model对话框显示表单,在最初的7WX UI模型 模拟C/S和桌面应用,也是保持列表页不变,另打开新页面显示表单,但感觉IE初始化一个新窗口有点迟滞,不够流畅。

B/S应用的习惯是页面切换,既表单页打开时替换了列表页,不用打开新窗口。表面上,你现在看到的7WX UI改进模型就是典型B/S方式,但其实不是,如下图所示,7WX其实同时布局了列表页listView和表单页DocView两个窗口,打开DocView时,listView并未关闭,只是默认隐去,你可以点一个键将其显示出来。当然,这种方式也未必是最好的方式,咱们可以讨论探寻更人性化、更流畅的界面方式。

 

listview and docview 

 

2、再说列表显示的更新问题(增、删、改时)。

B/S应用的列表显示与桌面应用不同,牵涉翻页问题:数据条目可能有几万条,但每页一般不超过百条。即使是Ajax开发,也不能一次性把所有条目都取到浏览器,7wx的设计是:每页显示几条,就取几条,不做过度设计。

增、删、改时,Ajax模式下首先要向服务器发送更新请求,请求被正确处理返回后,要进行列表显示更新,有两种办法:

* 客户端独立完成的列表更新
* 从服务器重新取列表数据进行更新

7wx权衡后采用的是后者,缺点是增加一点服务器开销,优点是用户程序极其简单(7wx中,用户程序只需一个调用:Xrefresh();)。
如果为了降低一点服务器开销采用前者,则,除了用户程序繁琐外,还有以下问题:假如一页显示10条,增加5条或删除5条后一页应该显示几条?如果当前已经被翻到了第200页,增加一条后显示哪一页?B/S系统是典型的多用户系统,如果你增加了一条数据期间,另外其他用户还增加了3条数据,那列表显示哪些数据,列表的总条目数怎么显示?这类问题估计不止这些,我认为,客户端独自更新列表获取的好处,相比其导致的问题,很不值。

此外:7wx的列表翻到某一页时,你更新这一页的某个条目后,框架自身能确保:刷新列表(Xrefresh())显示的还是这一页,用户程序不需任何干预,既,不用考虑你说的“。。。这个信息你放到那里?cookie?session?后退?”,你可以操作试试。

  • 大小: 82 KB
0 请登录后投票
   发表时间:2008-04-28  
to leebai:
呵呵,你用最简单的(应该是IFRAME吧)方式处理了这个问题.也是一种安逸的方案.
至于
引用

还有以下问题:假如一页显示10条,增加5条或删除5条后一页应该显示几条?如果当前已经被翻到了第200页,增加一条后显示哪一页?B/S系统是典型的多用户系统,如果你增加了一条数据期间,另外其他用户还增加了3条数据,那列表显示哪些数据,列表的总条目数怎么显示?

为了简单和方便我倒是有个简单的方法,假设页面上初始记录是10条.添加/删除后,
记录数变化了,直接添加/删除对应页面上的表格行就行了,没有必要一直保留10条不变呀.也同样没有必要在添加的时候抱着必须按某某次序排列的规则.
我现在的项目就是这样干的,而且更新也是动态的重新改写对应的表格行.仅仅是那一行,如何定位这一行很简单根据数据的值生成一个规则的唯一ElementID就行了.
jQuery代码
$('#ElementID').attr('id','').after(youhtml).remove();

至于youhtml就是生成的更新数据的代码了.
另外attr('id','')这个也不是必须的,纯粹是出于严谨的角度做的.
0 请登录后投票
   发表时间:2008-04-28  
hax 写道
leebai 写道

如果新的 HTML Specification 能包含treeview、listview、grid。。。等大粒度组件,web UI模式之争其实没有任何悬念,甚至RIA都不是对手(flex/javafx等要达到HTML/CSS同等的表达能力几乎是不可完成的任务,如果达到了,就是另外一个浏览器引擎了),虽然多媒体及图形方面RIA将会保持自己的价值。

在HTML升级之前,我认为最好的办法是以现有的,形式最接近的HTML元素为骨架,组合其他合适的HTML元素,通过扩充骨架HTML元素的属性、方法、事件,来构造大粒度的UI组件。目前的7wx组件已经很老了,新版本将会融合近来的一些想法,应该会有比较大的更新。


非常赞同。实际上我觉得有了HTML5,基本上客户端模板就没有用武之地了。所以还不如做一个框架来在早期浏览器上实现HTML5。


确实,看了HTML5 Draft,貌似极其强大,datagrid控件,Data Templates,离线应用支持,Client-side session及DB。。。

但太强大了,估计要有浏览器支持也是3-5年之后,还是自己继续想办法吧。
0 请登录后投票
论坛首页 Web前端技术版

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