| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:Web开发中的JavaScript设计艺术(二)
只看楼主 加入收藏
linuxpluto
Rank: 4
等 级:贵宾
威 望:13
帖 子:889
专家分:23
注 册:2005-8-14
收藏
 问题点数:0 回复次数:0 
Web开发中的JavaScript设计艺术(二)


戴立坚 :
脚本的艺术在于它的精巧和灵活,滥用当然会有害无利。但是使用的艺术,嘉宾是不是能分享一二
这个和经验有比较大的关系. 讲到艺术,就有点不实用的感觉.所以我平时开发是以效率为主的. 但如果我要做给别人重复使用的东西时,就要考虑到是否方便地让别人使用这个角度了. 你可以到http://www.lostinet.com/files/里下载我的ChatSolution,里面有一个rane.js文件.里面体现了我对艺术的看法.(艺术的代码总是有很多好处,而缺点就是难懂)
[2005-1-27 14:45:00]


戴立坚 :
迷失老大, 问你一句: abc = {} 这种结构叫什么东西呀.
{} 是对象的表达式. {} 是最简单的对象 , 等于 new Object();
[2005-1-27 14:46:00]


万常华 :
目前的jsvm能够实现类似java里面“接口”这样的功能吗? )
javascript 是一门动态语言,接口在这里意义不是非常大,JSVM 目前面临的瓶颈是性能方面,在对对象原形的判断上,jsvm2.x有了更多的考量
[2005-1-27 14:47:00]


戴立坚 :
请问 var a = {"aa": "aa", "bb":"bb"} 这种写法叫什么名
这个相当于 var a=new Object(); a.aa="aa"; a.bb="bb"; 如果你不想分开那么多行来写, {property1:value1,property2:value2} 这样的写法就直接很多.
[2005-1-27 14:47:00]


戴立坚 :
我平时在用JS时的一个担心就是JS在浏览器的兼容性问题,比如一个浏览器的不同版本,IE,Firefox.....,不知嘉宾对此有何建议?你们在实施中是如何最大保证兼容性的??
JS本身在IE与其他浏览器是一致的.不同的地方是环境的不同. 在浏览器上就是DHTML的规范不同. 我一般的做法是尽量用规范的写.例如尽量用element. setAttribute/getAttribute . 如果遇到不同的地方,就用if(isie){...}else{...} 的做法. 对于一些"downlevel"的浏览器,那就只好说"不支持"了. csdn上的javascript版上有关于这个的细节的讨论.
[2005-1-27 14:49:00]


万常华 :
JavaScript在长角里的展望?有前途吗???? )
我们不能指望一门计算机语言有太长的生命周期,重要的编程思想。
[2005-1-27 14:49:00]


戴立坚 :
在非IE浏览器里比如说 firefox 里如何实现 XmlDom
这个是用 document.implementation.createDocument("", " null); 来得到一个XmlDocument
[2005-1-27 14:51:00]


戴立坚 :
问一句老大, 在 iframe 里使用 top.screenTop 取到的值不准确问题有没有解决呀. 而取 parent.screenTop 却是正确的
这个我没有测试过. 如果你的经验是正确的,那么这是一个IE的BUG了. 但你可以考虑使用top.screenTop,然后计算各frame与window.top的height来计算出准确的值.
[2005-1-27 14:52:00]


万常华 :
问一句老大, 在 iframe 里使用 top.screenTop 取到的值不准确问题有没有解决呀. 而取 parent.screenTop 却是正确的
你这个问题不在javascript范畴内,属于dhtml的内容。还有很多诸如此类的问题,我建议去找 Web WorkShop 参考看看。(INET.CHM)
[2005-1-27 14:53:00]


刘如鸿 :
除了smartclient ,有没有.NET后台的RIA应用?
RIA准确的说是具备网络访问能力的“终端”的表现层架构,请注意我提到了“终端”和表现层这两个概念,因此在后台去说RIA是没有意义的,关于RIA和Smart Client,大家可以看我的blog:http://blog.csdn.net/liuruhong/archive/2005/01/10/247110.aspx,《程序员》杂志2005年第二期也作了技术专题
[2005-1-27 14:53:00]


刘如鸿 :
动态脚本语言在RIA上应用好像很多,嘉宾看好哪个?
比较典型的可能是Bindows了,我记得我写过一个评论,就我个人,不是那么看好,http://blog.csdn.net/liuruhong/archive/2004/05/07/664.aspx
[2005-1-27 14:54:00]


戴立坚 :
现在flash的脚本越来越接近jscript了,我还想问个问题,flash的脚本将来在纯.net平台上会有影响吗
不是很明白 . 你可以考虑 flash中的js 与dotnet的js 的"应用" 是两回事就OK了. 需要flash就写flash的脚本 ,需要dotnet就写dotnet的脚本. 除非flash打算支持dotnet,否则这没有关系的.
[2005-1-27 14:55:00]


万常华 :
动态脚本语言在RIA上应用好像很多,嘉宾看好哪个?
RIA的应用接下来会越来越多,我们目前需要的是制定一个企业标准来规范这一块的开发。还必须有一个语法层面上与业务无关的框架
[2005-1-27 14:55:00]


刘如鸿 :
大家有什么问题可以提交给futruelight,他会负责提交给嘉宾
[2005-1-27 14:59:00]


戴立坚 :
在JS里对长度超过千的数组遍历有何好的建议?? 甚至数组长度更大的
如果真的有那样的数组,那么当然写法上要注意点. 例如最好是 var arr=obj1.Property1.TheArrays; var len=arr.lengh; for(var i=0;i
[2005-1-27 15:00:00]


万常华 :
在JS里对长度超过千的数组遍历有何好的建议?? 甚至数组长度更大的
如果数组过大,我考虑是不是放弃用数组,例如用 Scripting.Dictionary 来实现查找某个对象 的方式来解决
[2005-1-27 15:00:00]


戴立坚 :
其实我的意思是flash的脚本不改变的话在新的.net平台js上会有影响吗?
同上.
[2005-1-27 15:00:00]


刘如鸿 :
我想问两位嘉宾,是否考虑过脚本方面的垃圾回收,就我的了解,JScript目前做的不是特别好?但是在应对大对象的情况下,应该怎么考虑?
[2005-1-27 15:03:00]


戴立坚 :
有个问题不知当问不当问 window.open 的返回值 和弹出的窗口的window不相等是为什么
这个没有遇到过,也无法分析原因 。 也许在社区里提问会有其他人有那样的经验。
[2005-1-27 15:05:00]


万常华 :
有个问题不知当问不当问 window.open 的返回值 和弹出的窗口的window不相等是为什么
在我看来,他们是相等的,不知你当时的测试场景是什么情况。
[2005-1-27 15:06:00]


戴立坚 :
脚本方面的垃圾回收
MICROSOFT的这个的确做得不好。主要问题是因为JScript与DHTML都是基于COM的。COM在这个的处理上有缺陷。我通常遇到的问题是HTML ELEMENT事件的关联,如果没有释放,那么内存就不会释放。如果主动detachEvent,那样就没有问题了。
[2005-1-27 15:07:00]


万常华 :
请问现在有很多软件,都想全部使用javascript实现,你认为现在到了这个时候了吗!现在的软件业可以都拖到web上来吗?
不是任何应用都适合搬到web上来的。javascript 的功能依赖于 dom 库。
[2005-1-27 15:07:00]


刘如鸿 :
问一句, JS还能活多久, 在MS的 smart client 出来之后JS是否还有位置?
任何一个语言的存在都是有其意义的,是因为需要所以语言会产生和流行,Smart Client只是一个理念,表现层架构的一种提法,他们之间本身并没有太多的冲突,我想他能够活很长时间
[2005-1-27 15:09:00]


戴立坚 :
能请嘉宾朋友谈一下JavaScript中所谓的“艺术”吗?
我眼中的艺术分: 1。用很短的代码实现较多的功能。这样的代码往往都有“艺术”气息。 2。写出来的代码容易被使用,那样需要在代码上下很大的功夫,这也很“艺术” 所以我的观点时,如果代码经过不断地改进,达到越来越好,那么这个就是“艺术”了。 例如JSVM,Bindows就是艺术
[2005-1-27 15:09:00]


万常华 :
能请嘉宾朋友谈一下JavaScript中所谓的“艺术”吗?
我认为,如果在js的设计思想符合美学特征,那就是一种艺术了!
[2005-1-27 15:10:00]


戴立坚 :
jscript.net微软会给它装混乱器吗?
JScript.Net会编译成 DotNet 的 dll 的。 所以使用 DotNet 的混淆器就OK了。
[2005-1-27 15:10:00]


刘如鸿 :
jscript.net微软会给它装混乱器吗?
JScript.NET目前是编译性语言,和C#,VB.NET同等的,所以所谓的混淆是没有意义的e
[2005-1-27 15:10:00]


戴立坚 :
所谓“脚本”都是在客户端运行的代码,那么对于一些关键性的脚本代码,如何保证其不备浏览者看到呢?
很多服务器都应用脚本技术。例如ASP由VBScript/JScript来写。如果要运行在客户端,那么做法可以是: 1。尽量不要让客户端的人得到JS的代码。例如屏蔽右键是基本的,有很多人想出各种方法的目的是为了这个。 2。是保护JS的思想,尽量另代码变得难读。这样即使得到代码,也很难被阅读和修改。
[2005-1-27 15:12:00]


万常华 :
所谓“脚本”都是在客户端运行的代码,那么对于一些关键性的脚本代码,如何保证其不备浏览者看到呢?
这是 javascript 中目前“难以”解决的问题。当初设计者包括现在的解释器提供商都没有考虑这个问题,这是把js作为一个脚本语言的定位决定的
[2005-1-27 15:12:00]


刘如鸿 :
jscript.net微软会给它装混乱器吗?
因为微软提供的混淆器或者说编码器是在源代码层次上考虑的,如果已经编译成MSIL,那么之后的混淆是其他工具去处理的
[2005-1-27 15:13:00]


刘如鸿 :
JScript.Net和现在的JScript有什么不同???
最简单的解释,JScript.NET必须在.NET上运行,而JScript可以在浏览器运行
[2005-1-27 15:13:00]


戴立坚 :
js 是否可以摆脱浏览器的框框? 我知道用 window.createPopup();可以模拟一下,但是如果它的父页面如果关闭, 它也会跟着关闭? 有没有什么更好的办法呢?
如果脚本是运行在浏览器中的,那么就要受浏览器的限制。这个是具体浏览器的开发问题了。如果技术上无法实现,那就看出浏览器的公司愿意不愿意提供这个功能了。
[2005-1-27 15:14:00]


万常华 :
js提供错误处理功能了吗?就像java中的exception类
提供了,但功能比较弱,我们做一些封装,可以大致上实现java异常的处理机制。
[2005-1-27 15:14:00]


戴立坚 :
请问现在有很多软件,都想全部使用javascript实现,你认为现在到了这个时候了吗!现在的软件业可以都拖到web上来吗?
我认为现在是属于研发和初试阶段。这个要看浏览器的生命力了。如果以后有东西会取代浏览器,那么基于浏览器的JS应用也会慢慢灭亡。但是现在看来程序越来越基于浏览器了。所以我对这个方向很看好的。但是以后也有可能有更多的编程方式。例如IE能HOST DotNet的程序,如果这个得到大的发展,那么脚本应用会受打击。
[2005-1-27 15:17:00]


刘如鸿 :
请问现在有很多软件,都想全部使用javascript实现,你认为现在到了这个时候了吗!现在的软件业可以都拖到web上来吗?
everything in web是一件很愚蠢的事情,我想任何平台都有自己擅长的问题域,不然就没有存在的价值,有些应用使用Web是合适的,有些应用并不是合适,所以现在有人提出了“The Return of Rich Client”的论调,某种角度来说,也就是对于目前Web过热的反思
[2005-1-27 15:17:00]


万常华 :
我想知道javascript到底可以干什么 或者说它到底可以发展到什么地步
javascript 目前主要是一门控制语言,没有基本的IO操作定义,除了本身的计算功能以外,其他的都要借助于容器中提供的控件来实现。
[2005-1-27 15:18:00]


戴立坚 :
JavaScript有没有好一点的调试器,我每次都是使用alert()的方法来调试的!
可以用vs.net来调试js。不过我自己也是经常用alert。另外拦截window.onerror也是好方案。在IE中。能够得到 window.onerror.caller 的。这样能够得到一个JS的StackTrace(调用的函数顺序表),这对调试很有帮助。
[2005-1-27 15:19:00]


刘如鸿 :
目前国内有没有像Bindows这样规模的JS开源项目,想了解一下
王常华的JSVM就是一个这样的框架,你可以在www.51js.com上得到更多的信息
[2005-1-27 15:19:00]


戴立坚 :
请推荐几个javascript 的调试工具,谢谢
首推选 vs.net 。 在vs.net里的调试里的关联进程,选上Script就OK了。
[2005-1-27 15:20:00]


万常华 :
目前国内有没有像Bindows这样规模的JS开源项目,想了解一下
据我所知,类似bindows关注于web UI 方面的项目国内就有几个,但目前没有开源。
[2005-1-27 15:21:00]


刘如鸿 :
大家有问题尽快提交给futurelight,聊天活动剩下10分钟结束
[2005-1-27 15:21:00]


戴立坚 :
问一句, 如何在IE里也实现 watch() ? watch在NS里是被支持的
我没有接触过 NS 中的 watch() 。 不如说说 watch 是做什么的?然后看看在IE中怎样实现同样的功能?
[2005-1-27 15:21:00]


万常华 :
一个“良好的组织结构和规范”这样的规范应该从哪些方面考虑的? )
前面已经回答
[2005-1-27 15:23:00]


戴立坚 :
刚才玩WALLOP突然想起一个问题来~~跟梅花雪的问题类似。FLEX这样的技术出现会对JS产生什么样的影响。
就好像饭与面包的感觉。如果某一天大家都认为面包好吃了,那么就没有人吃饭了。所以饭和面包都要努力呵呵。 FLEX相当于新的技术和应用。但是具体能不能代替JS的应用,具体是看他们的优点缺点和开发人员的选择了。
[2005-1-27 15:23:00]


戴立坚 :
能不能说明一下如何拦截window.onerror,这个方法没有用过!
例如 window.onerror=function(msg,file,line){ alert(msg); return true ;}
[2005-1-27 15:24:00]


戴立坚 :
请问:为什么没有组织,专门做一些控件!,来统一各浏览器的差距!
其实是有一些这样的代码的。例如很多人使用 HTMLElement.prototype.__defineGetter__("outerHTML",..)的方法来统一这些应用。而Bindows在在另外的模式上去屏蔽浏览器的细节。 不过这是艰巨的工作,还要看各浏览器的制造商的脸色。。
[2005-1-27 15:26:00]


万常华 :
能不能说明一下如何拦截window.onerror,这个方法没有用过!
为什么要拦截呢? 既然有异常,我们或者处理,或者向上层容器抛。我主张js 开发中应多用 try{ } catch(){} 如果非要忽略,可以通过 window.onerror = function(){return false} 来实现
[2005-1-27 15:27:00]


戴立坚 :
我觉得对于不同浏览器还是针对每个浏览器作一套方案的比较好,而不是写很长很长的脚本去适应他们
那样也有缺点的。我曾经试过这样做。 但是当需要修改代码时,两边同时改,同时测试,所费的时间更多。
[2005-1-27 15:29:00]


万常华 :
请问脚本会不会,被各种组织的框架给挤掉!
脚本自己也可以有框架啊
[2005-1-27 15:30:00]


万常华 :
请问在JS里面能否抛出一个自定义的错误,就像VBS里面的Err.Raise一样?
可以 throw new Error(errNum,errDescription);
[2005-1-27 15:31:00]


刘如鸿 :
HTC是否只有IE支持?
是的,HTC是IE自己的扩展,Mozilla也有类似的东西,就是XUL
[2005-1-27 15:31:00]


刘如鸿 :
使用javascript编写游戏,是否有前途?
有人这么做了,有没有前途我不敢说
[2005-1-27 15:31:00]


戴立坚 :
使用javascript编写游戏,是否有前途?
我觉得,如果没有人与你竞争,那就是有前途的。否则用JS写大型的程序会很费时间。
[2005-1-27 15:32:00]


刘如鸿 :
感谢大家的积极参与,聊天活动到此结束,如果大家有任何问题,可以通过Email和我们的嘉宾联系,他们的联系方式可以在个人介绍中找
[2005-1-27 15:33:00]


戴立坚 :
即使你写兼容的脚本,也是一样要改两个地方,只是要改的地方少一些:)
是的。但是这样会不容易出错误。我以前经常犯的错误是,把代码从一边复制到另外一边,总是忘记修改一些细节。


刘如鸿 :
《msdn开发精选》将一如既往地为您呈现精彩的技术聊天,如果大家对于杂志和我们的活动有什么意见和建议,欢迎和我联系,我的email:liurh@csdn.net,再一次谢谢大家的参与
[2005-1-27 15:34:00]


万常华 :
不再try {}catch()块里面 throw语句有效嘛?
有效,如果执行域中没有catch的话将被抛至顶容器,即 window 对象。
[2005-1-27 15:34:00]

[此贴子已经被作者于2006-1-2 5:39:37编辑过]

搜索更多相关主题的帖子: JavaScript Web 艺术 开发 设计 
2006-01-02 05:24
快速回复:Web开发中的JavaScript设计艺术(二)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018113 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved