我是Javascript编程领域的一个相对tyro,所以请放轻松我.:-)
我正在尝试将eventListener添加到页面上的各种DOM元素.但是,我添加我的事件的一些元素已经有了一个eventListener,我不想取代那个; 我只想将我的事件添加到一个尚未与之关联的事件的元素中.
我查看了一堆与addEventListener,event.StopPropagation,事件冒泡等相关的东西,但还没有找到任何方法来实现这一点.
有没有办法检测给定元素上的其他事件侦听器,或者某种其他方式来获取我想要的位置?
我有一个Access ADP文件.我将后端数据库升级为指向SQL 2005服务器而不是SQL 2000服务器,并相应地更改了数据库连接信息.该文件在我自己的系统上运行完全正常,运行Windows 7(64位)和Access 2007.在运行Windows XP和Access 2007的目标系统上,数据库的主要功能几乎立即崩溃,出现"运行时错误" '13':类型不匹配"错误.
起初我以为我遇到的问题与此问题中描述的问题相同,其中连接的默认定义是DAO,但数据库使用的是ADO对象.但是,在查看代码时,连接的每个实例都专门声明为"ADODB.Connection".
导致错误的问题是:
Public Sub Tools()
dim db as ADODB.Connection
dim sql as String
sql = "Select SSPatch from tblPlastech"
set db = CurrentProject.Connection ' THIS LINE CAUSES THE TYPE MISMATCH ERROR
dim rst as ADODB.RecordSet
set rst = New ADODB.RecordSet
rst.open sql, db, adOpenKeyset, adLockOptimistic
gsSSpath = rst!sspath
QUOTES = Chr(34)
rst.Close
set rst = Nothing
db.Close
set db = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
任何人都可以对这个问题有所了解吗?现在我很难过.
我有一个GreaseMonkey脚本,适用于使用框架作为其界面不可分割的一部分的网站.这个脚本像筛子一样泄漏内存,我相信这是因为我在其中一个框架中使用了addEventListener.很简单,我附加了各种事件监听器,然后框架重新加载并附加事件监听器,然后当您与此框架中的各种元素或其他元素交互时,框架会重新加载数周或数千次迭代.到最后,Firefox已经从大约300M的内存增加到2G(或者在它到达之前崩溃).
我在某地读到,执行整页重新加载将允许FireFox的垃圾收集例程启动并从孤立的事件处理程序中恢复所有内存,当我在脚本运行一段时间后,在内存大约10秒内按F5时就足够了回到300M.不幸的是,这打破了网站中的一个不同的框架(一个非常流行的聊天窗口),所以虽然它确实似乎证实我怀疑addEventListener是责备,但它并不是一个真正的解决方案.
我还能做些什么来在不强制刷新整页的情况下正确释放内存吗?
(目前使用GM 1.5和FF 17,但问题是自GM 0.8/FF 4以后就存在这个问题.)