我已将事件附加到文本框中addEventListener.它工作正常.当我想以编程方式从另一个函数触发事件时,我的问题出现了.
我该怎么做?
我创建了一个有几种方法的对象.其中一些方法是异步的,因此我想使用事件来在方法完成时执行操作.为此,我尝试将addEventListener添加到对象.
var iSubmit = {
addEventListener: document.addEventListener || document.attachEvent,
dispatchEvent: document.dispatchEvent,
fireEvent: document.fireEvent,
//the method below is added for completeness, but is not causing the problem.
test: function(memo) {
var name = "test";
var event;
if (document.createEvent) {
event = document.createEvent("HTMLEvents");
event.initEvent(name, true, true);
} else {
event = document.createEventObject();
event.eventType = name;
}
event.eventName = name;
event.memo = memo || { };
if (document.createEvent) {
try {
document.dispatchEvent(event);
} catch (ex) {
iAlert.debug(ex, 'iPushError');
}
} else { …Run Code Online (Sandbox Code Playgroud) 我需要找到一种方法来更新用它实现的Web应用程序backbone.
用例如下:
我有几个视图,每个视图,或者与此视图相关的模型/集合,需要在不同的时间向服务器发出不同的轮询请求以发现一些更改.
我想知道最通用的方法是什么:
1)实现Traditional Polling Request
2)实现Long Polling Request
3)实现HTML5 web socket
PS:
1)服务器是用PHP编写的.
2)目前我正在寻找一种不使用HTML5 WebSockets的解决方案,因为使用PHP可能并不那么简单.
这是我的简单代码(1)使用Traditional Polling Request.
(1)
// MyModel
var MyModel = Backbone.View.extend({
urlRoot: 'backendUrl'
});
// MyView
var MyView = Backbone.View.extend({
initialize: function () {
this.model = new MyModel();
this.model.fetch();
this.model.on('change', this.render);
setTimeout(function () {
this.model.fetch();
}, 1000 * 60 * 2); // in order to update the view each two minutes
}
});
Run Code Online (Sandbox Code Playgroud)
var elem=document.getElementById('mydiv');
elem.addEventListener('click',function(){...});
Run Code Online (Sandbox Code Playgroud)
执行完上面的代码后elem就是一个HTMLDivElement接口的实例。我的大问题是 addEventListener() 方法到底做了什么。它在哪些 DOM 对象中注册了侦听器以及它是如何注册的(它更改了这些 DOM 对象的哪些属性)。换句话说,我想知道如何知道elem添加了一个监听器,它的哪些属性(所有这些属性都影响到它的原型链)。例如,我知道 Event.prototype 具有诸如type, 之类的关键属性target;但是我无法“连接”它们elem......
我不想找到哪些事件侦听器附加到上述 DOM 节点。我想知道内部程序。
谢谢
javascript ×4
backbone.js ×1
cordova ×1
dom ×1
dom-events ×1
events ×1
long-polling ×1
object ×1
polling ×1
triggers ×1
websocket ×1