草庐IT

安全事件

全部标签

Javascript 事件监听器性能

有人可以帮助清楚地描述事件监听器的成本吗?我的经验证据是小型文档与大型文档和事件委托(delegate)的改进......但我希望对过程有具体的解释-但这代价高昂。我假设问题只是附加到大型文档上的对象属性的函数数量过多(更多对象、更多属性、监听器、更多函数)? 最佳答案 此引用似乎暗示添加大量事件处理程序会增加内存使用量(使用更多资源可能会减慢您的应用程序):http://gregfranko.com/blog/javascript-performance-tips/看起来这里的答案更全面:eventdelegationvsdire

javascript - 控制事件处理程序/监听器的执行顺序

IEMonster又一次给我带来了一个奇怪的问题。我正在对我不久前继承的asp.net站点进行一些更改。问题之一是在某些页面中有几个控件将Javascript函数添加为onload事件的处理程序(如果重要,则使用YUI)。其中一些事件处理程序假定已执行某些其他功能。这在Firefox和IE7中非常好,因为处理程序似乎按注册顺序执行。另一方面,IE8向后执行此操作。我可以采用某种双重检查方法,但考虑到控件存在于多个页面中,我认为这会产生更多的依赖性。所以我已经开始编写我自己的队列类,我将函数推送到该队列类并可以控制它们的执行顺序。然后我将注册一个onload处理程序,指示队列以我的首选顺

javascript - 标签页(或浏览器)关闭时的 Chrome onbeforeunload 事件

我正在尝试在用户离开(关闭)浏览器或页面时运行一个函数,我已经让它在除Chrome之外的所有浏览器中运行。如果我离开页面,Chrome会成功运行该函数,但如果我关闭选项卡或完全关闭浏览器,Chrome不会运行它。我在最后运行的函数创建一个图像并将一些数据发送到我的服务器(类似于任何分析报告)示例:img.src="url?data=yyy"。这个图片是用js动态创建的。有人可以阐明问题可能是什么吗?我将其缩小为以下几个原因:1)选项卡关闭时我没有使用正确的事件(即不是卸载前)2)Chrome实际上运行了该功能,但由于浏览器/页面关闭而未发送图像。感谢任何帮助。谢谢。示例代码如下:if(

javascript - Google Map KML 图层地标点击事件返回 ZERO_RESULTS

将监听器附加到KML图层:varlayer=newgoogle.maps.KmlLayer('http://sites.google.com/site/kmlprototypes/kmls/temp.kml?dc_='+Math.random(),{suppressInfoWindows:true,preserveViewport:true});layer.setMap(map);google.maps.event.addListener(layer,'click',function(obj){alert(obj.featureData.id);});KML文件有效(通过验证api检查

javascript - 如何触发触摸事件?

让我们从一些事件监听器开始:window.addEventListener('scroll',function(e){console.log('scroll',e);});window.addEventListener('touchstart',function(e){console.log('touchstart',e);});window.addEventListener('touchmove',function(e){console.log('touchmove',e);});window.addEventListener('touchend',function(e){conso

第142篇 合约安全-重入锁

本篇介绍最常见的一种智能合约攻击-重入攻击,它曾导致以太坊分叉为ETH和ETC(以太经典),并介绍如何避免它。1.重入攻击重入攻击是智能合约中最常见的一种攻击,攻击者通过合约漏洞(例如fallback函数)循环调用合约,将合约中资产转走或铸造大量代币。著名的重入攻击事件:2016年,TheDAO合约被重入攻击,黑客盗走了合约中的3,600,000枚 ETH,并导致以太坊分叉为 ETH 链和 ETC(以太经典)链。距离TheDAO被重入攻击已经6年了,但每年还是会有几次因重入漏洞而损失千万美元的项目,因此理解这个漏洞非常重要。0xAA 抢bank的故事为了让大家更好理解,这里讲一个"黑客0xAA

Javascript 指针事件 - Wacom Pen Pressure 和 Tilt 未注册

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭5年前。Improvethisquestion我正在尝试使用IEEdge、jQuery、PointerEventsPolyfill(jQueryPEP)和我的WacomIntuosPro5MediumTablet(已安装驱动程序并正常工作)来实现新的PointerEvents模型。笔事件始终为压力注册0.5,为tiltX注册0,为tiltY注册

javascript - React.js 事件需要点击 2 次才能执行

我正在通过React.js构建生命游戏,但我陷入了一种不舒服的境地:我设置为onClick={event}的每个事件都需要2次点击才能执行。让我描述更多:正如您在下面的代码中看到的,我有2个按钮(一个按钮用于将板的大小更改为10x10,另一个按钮用于更改间隔的速度)。一切正常,只是我点击这两个按钮时,需要双击执行。在第一次点击时,使用Chrome中的ReactDeveloperTool,我可以看到包括width,height,speed在内的状态发生了变化,但是状态board仍然保持不变。只有在第二次点击后,board状态才会改变。谁能解释原因并告诉我如何解决?谢谢这是我的部分代码va

javascript - 触发popstate事件时如何获取上一页的url?

下面是pushState和popstate事件的简单示例:Clickme$("#example_btn").click(function(){history.pushState({'url':"example.htm"},null,"example.htm");});$(window).bind('popstate',function(event){if(event.originalEvent.state){console.log(event.originalEvent.state.url);}});当触发popstate事件时,显示当前页面的url。我的问题是:在这种情况下,如何在触

javascript - 在日文输入中输入 keyup 事件

我有一个输入字段,我正在其上监听keyup事件。我使用日文输入法开始输入字符,但事件没有被触发;这是预期的,因为输入字符正在转换为平假名,并且会出现一个下拉列表,以便用户可以选择它们的片假名或汉字版本。当用户键入字符时,字符会显示为下划线,用户可以通过按enter来选择它的选项(假名/汉字)。之后,文本不再带有下划线,并“提交”到输入文本。此行为符合输入法的预期工作方式。但是,在提交文本之前,我不希望收到任何keyup事件(即便如此,我也希望没有keyup的更改事件),因为enter是输入法工作方式的一部分。我正在监听keyup事件,因为我需要在用户释放回车键时触发一个Action。我