关于htc组件和动态javascript的比较与讨论

Go_Rush 2002-09-25 03:32:31
我先说说我自己的js编程轨迹:

1.
以前很喜欢用onmouseover,onmouseout等等来对事件进行代码响应
如: <div id=odiv onmouseover="javascript:alert('in')">haha</div>

2.
后来,就喜欢上了用attachEvent
如: odiv.attachEvent("onmouseover",new Function("alert('in')"));

3
现在,我注意到了用htc行为组件.也可以实现同样的功能.
但是,刚涉及,懂得不多。



现在我的问题是:

1. 这3种方法都可以实现我的功能。都可以对特定的事件进行响应。
那他们的区别在哪里?(实现和使用上的区别,而不是技术上的区别)
换句话说:在那种情况(或者场合之下)用那种方法更为合适?

2. 如果,我现在想设计一个网站。想里面的所有页面的table具有某个
特性(比如,当鼠标划过table里面的tr时,高亮显示鼠标所在的行,移出
的时候又恢复以前的样式),要达到这样的效果用那种技术比较好。应该怎么
做才好。给点思路。。
(注意:单独在一个页面里实现这个功能很方便,问题是要自动让整个网站
的所有页面都具有这样的特性就难找到通用而且简单的方法了)


3. 对于 htc,因为刚接触。了解得不多,感觉就是 javascript+dom,暂时还
没有体会到他的妙处。
有没有能明显体现htc的优势的贴子(就是实现某功能htc做起来很方便。但是
普通js实现确很繁琐的例子.不要给我这个论坛里面以前的贴子,因为我刚才搜索过了)。




凡up者都有分,回答精彩者我可以开贴给分(我还有好几千分作为后盾呐)


希望各位,尤其是对js比较熟悉的高手发言
...全文
349 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccton 2002-09-30
  • 打赏
  • 举报
回复
加速加速再加速....

抢在所有东下载完之前就给用户控制权
emu 2002-09-30
  • 打赏
  • 举报
回复
那你的网页本身未免也太庞大了点吧?在里面都要做些什么工作啊?
ccton 2002-09-30
  • 打赏
  • 举报
回复
所以偶的JS一大任务是判断元素的加载状态,唉....
ccton 2002-09-30
  • 打赏
  • 举报
回复
onload是个什么玩意?
偶的网站,80%的JS操作在onload之前完成,否则不变成蜗牛了?
emu 2002-09-29
  • 打赏
  • 举报
回复
----------------------------------
页子还没全打开,而js已经运行了
----------------------------------
为什么不在onload里面运行呢?


------------------------------------
相当一部分人仍使用的是ie5
------------------------------------
更遭的是有一些人还在用win98+IE4。我想哭啊,有人陪我哭吗?
flashasp 2002-09-29
  • 打赏
  • 举报
回复
我又来学习!!
zz315 2002-09-29
  • 打赏
  • 举报
回复
htc用的多了是会慢。我看一些资料介绍,htc出于稳定性的考虑,只有所有用了那个htc的内容全部预载进来了,才会显示出来,这样如果很多,就慢,我做过的一个菜单就是这样,开始没什么,后来越加越多,就慢,我在自己的机子上运行都要等几秒钟,说明绝对是htc造成的。不过话说回来,用js写的,有时在网速慢的时候,页子还没全打开,而js已经运行了,这时你操作时可能会出错,而htc就不会出现这种情况了。

另外,htc是微软独有的,而且要求至少ie5以上版本,有些功能则是ie5.5以上,所以兼容性要差。而使用纯粹的JS技术,兼容性和稳定性要好的多!

这里强烈建议不推荐使用ie5.5+才支持的功能,相当一部分人仍使用的是ie5(所以我调js都是在ie5下)。
zz315 2002-09-29
  • 打赏
  • 举报
回复
回htc文件路径问题:htc文件路径是相对于css文件所在位置的,所以说如果你是用外部css文件,而在这个css文件中又用到了htc,那么这个htc的相对路径位置是相对于css文件的,而不是调用css文件的网页。
qiuliang1979 2002-09-28
  • 打赏
  • 举报
回复
用行为组件吧!
用css可能实现上要简单一点!
emu 2002-09-28
  • 打赏
  • 举报
回复
快慢是相对的。很多时候1秒钟时间的页面转换根本不是问题,就显不出慢了,我当时作的是在树上选一个节点的modalDialog,就是需要一点马上就弹出来,等一秒钟就很不爽。
Go_Rush 2002-09-28
  • 打赏
  • 举报
回复
我怎么没有感觉到用htc慢啊。

我做了一个表格tr在鼠标移入和移出的时候变色的htc.
一点都不慢啊。
我的那table有 200多个tr.加载得时候屏幕没有闪,鼠标也不抖啊

不知道你们是怎么做的。我是在
oncontentready事件里写代码。并在oncontentready事件中绑定
onmouseover 和 onmouseout事件。
并不单独处理onmouseover,onmouseout事件,这样可能效果好一点.


对了。大家都用htc做什么啊。
(我就做了一个表格变色的。和微软的那个日历htc。感觉htc这东西功能蛮强大的)

还有没有什么实用价值的阿。大家说说看。

Go_Rush 2002-09-28
  • 打赏
  • 举报
回复
哎。是我犯傻了

我以前用的是

table{ BEHAVIOR: url('http://localhost/table.htc') }

以为这样就解决问题了。

但是我用 http://127.0.0.1/test.asp
和 http://gorush/test.asp (gorush是我的计算机名)

访问的时候,就不行了.说没有权限。 估计 htc不能跨域访问.


table{ BEHAVIOR: url('/table.htc') }

问题解决



emu 2002-09-28
  • 打赏
  • 举报
回复
Go_Rush(阿舜): 试试用绝对地址

table{ BEHAVIOR: url('/table.htc') }
emu 2002-09-28
  • 打赏
  • 举报
回复
同意 Lostinet(迷失网络)的说法。我以前象Go_Rush(阿舜)一样用htc来实现mouseover时候的高亮显示,感觉很方便。后来有一回发现我的一个树显示的很慢,要近1秒种才能显示出来,从服务器到网页跟踪了好久都找不到瓶颈,最后好不容易才发现是树的每一个节点都带了高亮显示,节点一多起来就很慢了,改用回onmouseover就快起来了,差不多0.2秒就处理完了。
Go_Rush 2002-09-28
  • 打赏
  • 举报
回复
to mybios(俊俊哥哥)

::用HTC把整个网站的table中的tr都有个onmouseover时变色的功能

是的。很容易。我已经实现了。但是在具体操作的时候又出了问题

我的web页根文件夹为 C:\Inetpub\wwwroot

再这个文件夹里的文件为 test.css,table.htc.实现tr的onmouseover时变色的功能


但是我发现只有 C:\Inetpub\wwwroot 这个目录下面的html文件可以实现该
效果。 C:\Inetpub\wwwroot子目录 下面的文件就不行了
(要把table.htc拷到相应的子目录才可以,这样的话10个子目录就要copy10个。而且如果要修改 htc文件,也要修改10个.不方便)

有没有什么好的解决方法?


附:(部分代码)

C:\Inetpub\wwwroot\test.css:

table{ BEHAVIOR: url('table.htc') }

调用页
C:\Inetpub\wwwroot\test.htm
<link href="test.css" rel="stylesheet" type="text/css">


C:\Inetpub\wwwroot\subdir\test.htm
<link href="../test.css" rel="stylesheet" type="text/css">
mybios 2002-09-28
  • 打赏
  • 举报
回复
但不可否认的是HTC写通用的东西的时候比较容易。至少比用javascript写容易许多!
只要一页中应用这个HTC的element不要超过10个速度就不会慢啦。否则每次载入。鼠标都会闪很多下!很难受的阿
mybios 2002-09-28
  • 打赏
  • 举报
回复
HTC最讨厌的是每遇到一个应用这个行为的时候鼠标就闪一下!所以这样速度会比纯javascript慢许多!
mybios 2002-09-28
  • 打赏
  • 举报
回复
table{ BEHAVIOR: url('table.htc') }
改成绝对路径不行吗?
table{ BEHAVIOR: url('/table.htc') }
alexxing 2002-09-27
  • 打赏
  • 举报
回复
学习
mybios 2002-09-27
  • 打赏
  • 举报
回复
用HTC把整个网站的table中的tr都有个onmouseover时变色的功能其实很简单!
只要做一个简单的HTC,然后用CSS把他绑定在TR的行为中,然后每个页都调用这个CSS就可以了。
加载更多回复(13)

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧