我有一个非常奇怪的例子......我需要填充一个1x1像素的圆圈,所有这些都在浏览器中使用不同的颜色.
我试过的是这样的
function getRandomColor() {
var letters = '0123456789ABCDEF'.split('');
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.round(Math.random() * 15)];
}
return color;
}
function createRandomSqaure(destination) {
var size = destination.height() * destination.width();
for (var i = 0; i < size; i += 1) {
destination.append('<div class="pixel" style="background: ' + getRandomColor() + '"></div>');
}
}
createRandomSqaure($('.pic'));
Run Code Online (Sandbox Code Playgroud)
情况是,它超级慢(你可以想象,200x200图像的循环次数为40k),我想也许更好的方法是在画布上绘制它?我需要在最后绘制一个充满这些像素的圆圈......
我不知道如何以更优化的方式做这样的事情,我也可以使用nodejs服务器,但我认为在heroku上生成类似服务器端的东西太过分了.
我只是好奇你们有什么想法,做这样的事情最好的方法是什么?
我遇到了一个问题,我尝试使用一个简单的主干事件总线
var eventBus = _.extend({}, Backbone.Events);
Run Code Online (Sandbox Code Playgroud)
我在 DOM 中的多个视图下方有一个按钮,这些按钮是另一个视图,如下所示:
===================
===== CONTENT ===== <- VIEW 1 (content)
===================
BTN1 | BTN2 | BTN3 <- VIEW 2 (controls)
Run Code Online (Sandbox Code Playgroud)
这在一页上重复多次。
问题是,当我触发一个事件时,它会为页面上的所有视图触发。
在“控制”中,我有:
events: {
'click .check': 'checkMe',
}
checkMe: function(e) {
e.preventDefault();
eventBus.trigger('checkMe');
}
Run Code Online (Sandbox Code Playgroud)
并且在所有视图中:
initialize: function(options) {
…
eventBus.on('checkMe', this.checkMe, this);
},
checkMe: function() {
alert("!");
}
Run Code Online (Sandbox Code Playgroud)
正如我之前所说,当我单击一组按钮时,它会为页面上的每个视图(内容)触发事件,有没有办法让它以正确的方式工作?
谢谢你们!