如何创建消息队列?

时间:2011-02-17 11:10:55

标签: javascript firefox-addon

我希望显示一些消息,以便在用户时向用户提供反馈 提供输入或只是与UI交互。

我需要它为我的firefox插件,所以我必须用普通的javascript开发它 而不是jQuery。

我希望显示该消息,但同时只能显示一条消息 时间,所以我需要一些队列来管理收到的消息。过了一段时间 例如3秒消息应消失或消失。

现在我可以向DOM添加消息了。有关如何实现队列的任何建议 以及如何根据时间推送消息?

谢谢!

3 个答案:

答案 0 :(得分:4)

Perheps你需要 FIFO(先进先出)

的概念

在计划java脚本语言中查看这个简单的例子:

function Queue() {
    var data = [];

    this.isEmpty = function() {
        return (data.length == 0);
    };

    this.enqueue = function(obj) {
        data.push(obj);
    };

    this.dequeue = function() {
        return data.shift();
    };

    this.peek = function() {
        return data[0];
    };

    this.clear = function() {
        data = [];
    };
}

答案 1 :(得分:1)

你可以在firefox插件中使用jQuery:

在xul文件中包含一个指向jQuery文件的脚本标记,例如:

<script type="text/javascript" src="chrome://extensionname/content/jquery.js" />

在每个使用jQuery的js函数中,插入以下行:

$jQuizzle = jQuery.noConflict(); 

在每个jQuery调用中,如果您尝试在当前浏览器窗口中操作文档,则必须将上下文提供为“window.content.document”,如下所示:

$jQuizzle(".myClass", window.content.document).show();

然后你可以使用这个jQuery插件: http://benalman.com/projects/jquery-message-queuing-plugin/

答案 2 :(得分:0)

目前尚不清楚要显示哪种消息。 nsIAlertsService可以显示消息,但我不确定它排队的情况。如果你想要更简单的东西,也许你可以只显示一个自定义的<tooltip>元素。