- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有内存泄漏:
var ortc = require("co.realtime.ortc");
function ortcNot() {
ortc.clusterUrl = 'http://ortc-developers.realtime.co/server/2.2';
ortc.connectionMetadata = 'Titanium Example';
ortc.addEventListener('onException', function(e) {
Ti.API.info('Exception: ' + e.info);
});
ortc.addEventListener('onConnected', function(e) {
Ti.API.info('Connected to ORTC server');
ortc.subscribe('yellow24', true);
});
ortc.addEventListener('onDisconnected', function(e) {
Ti.API.info('Disconnected from ORTC');
//remove event handlers
//ortc = null;
});
ortc.addEventListener('onSubscribed', function(e) {
Ti.API.info('Subscribed to: ' + e.channel);
Ti.API.info('Sending a message to: ' + e.channel);
//ortc.send(e.channel, 'Message from iPhone');
});
ortc.addEventListener('onUnsubscribed', function(e) {
Ti.API.info('Unsubscribed from: ' + e.channel);
ortc.disconnect();
});
ortc.addEventListener('onMessage', function(e) {
Ti.API.info('Message received: ' + e.message + ' at channel: ' + e.channel);
//parse message
var message = JSON.parse(e.message);
alert(message.user.message);
//check chat id
if (message.id == args.chatId) {
recieveMessage(message);
}
//ortc.unsubscribe(e.channel);
Ti.API.info(ortc.isConnected());
});
ortc.connect('yellow2');
}
ortcNot();
当我关闭我的 Controller 窗口,然后重新打开窗口。旧的事件监听器仍在内存中,导致创建重复的事件监听器。
知道为什么会这样,如何解决?谢谢
最佳答案
不要使用内置函数定义监听器,而是始终将它们声明为调用函数。
要删除一个 eventListener,它在 addEventListener 和 removeEventListener 中必须相同,将其声明为一个函数并将其分配给 eventListener 可以解决这个问题。例如
var viewObject = null;
function eventTodo(){
// do stuff here ...
viewObject.removeEventListener('click', eventTodo);
}
function addListener() {
viewObject = Ti.UI.createView();
viewObject.addEventListener('click', eventTodo);
 return viewObject;
}
当您关闭窗口时,您并没有调用 removeEventLister,这就是每次打开窗口时都会复制事件的原因。将关闭事件附加到有问题的窗口对象,该对象调用一个函数来删除所有 eventListener,从而将它们从应用程序内存中删除。
关于ios - 从内存中删除事件处理程序(ortc),钛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26700805/
我有内存泄漏: var ortc = require("co.realtime.ortc"); function ortcNot() { ort
我正在尝试使用 Edge 的 ORTC 以便与其他网络浏览器进行实时通信。我已经使用点对点连接成功地完成了这项工作,但在中间添加网关后我遇到了问题。 当我使用 Edge(控制)开始调用时,由于某种原因
阅读多篇文章后,我很困惑微软是否会遵循 WebRTC 标准或 将跟随它的 cu-rtc 继任者 O-RTC? 此外,Opera 声明它支持 18+ 版本的 WebRTC, 但我没有看到对 getUse
首先 - 抱歉,因为我没有足够的代表,所以无法添加 ORTC 标签,所以现在添加 webrtc。我一直在尝试 ORTC 原型(prototype),但不幸的是我遇到了绊脚石:( 我有一个与以下非常相似
寻找有关 ORTC 的明确信息似乎很困难,而寻找示例则更是如此。我需要在 iframe 之间发送字符串,并正在考虑使用 WebRTC,但为了支持 Windows Edge,我一直在研究 ORTC。我想
我是一名优秀的程序员,十分优秀!