考虑以下(脆弱的)JavaScript代码:
var img = new Image;
img.src = "data:image/png;base64,..."; // Assume valid data
// Danger(?) Attempting to use image immediately after setting src
console.log( img.width, img.height );
someCanvasContext.drawImage( img, 0, 0 );
// Danger(?) Setting onload after setting src
img.onload = function(){ console.log('I ran!'); };
Run Code Online (Sandbox Code Playgroud)
问题
onload调用回调(在src更改后设置)?实验测试
我创建了一个具有类似代码的简单测试页面.在Safari我的第一次测试,都是由本地打开HTML网页(file:///URL),并从我的服务器加载它,结果显示一切工作:高度和宽度是正确的,在画布上绘制的作品,并且在onload还火.
在Firefox v3.6(OS X)中,启动浏览器后加载页面显示设置后高度/宽度不正确,drawImage()失败.(然而,onload处理程序会触发.)然而,再次加载页面会在设置和drawImage()工作后立即显示宽度/高度.Firefox似乎将数据URL的内容缓存为图像,并在同一会话中使用时立即可用.
在Chrome v8(OS X)中,我看到与Firefox相同的结果:图像不能立即使用,但需要一些时间从数据URL异步"加载".
除了实验证明上述哪些浏览器有效或无效之外,我真的很喜欢这些应该如何表现的规范的链接.到目前为止,我的Google-fu还没有完成任务.
安全玩耍
对于那些不明白为什么上面可能有危险的人,要知道你应该使用这样的图像是安全的:
// First create/find the …Run Code Online (Sandbox Code Playgroud) 我需要创建网络聊天.所以我需要不断刷新页面.
我想使用这个jQuery函数:
<script type="text/javascript">
$(document).ready(function(){
var sec = setInterval(function()
{
$('#chat').load('chat_r.php?id=' + Math.random());
}, 1000);
});
</script>
Run Code Online (Sandbox Code Playgroud)
但我发现这个功能非常慢.
也许你知道更好的选择吗?
假设我想在Haskell中添加两个列表.最常用的方法是什么?
这是我做的:
addLists :: (Integral a) => [a] -> [a] -> [a]
addLists xs ys = map add $ zip xs ys
where add (x, y) = x+y
Run Code Online (Sandbox Code Playgroud) 我正在使用Jquery UI自动完成,这是下面的代码
var opt_source = {...}
var options = {
minLength: 0,
source: opt_source,
search: "aPreDefinedString"
};
$(".searchable_input").autocomplete(options);
我的 理解 是它现在应该搜索aPreDefinedString; 这不会发生,而是搜索本地源userInput.有人能指出我哪里错了吗?
我看过debug_backtrace,但到目前为止它没有做我需要它做的事情.
我需要知道我正在调用的函数是"被叫"还是"回显".像这样:
function hello() {
//blah blah
}
echo hello(); //echo-ed
hello(); //'called'
Run Code Online (Sandbox Code Playgroud)
但是,如果它被'echo-ed''调用',那么该函数会做不同的事情.
我该怎么办?
我试着通过在railsforzombies中做一些实验来学习rails,我在lab3(if语句).
它有两个表:
目标 在每个区块中,如果Zombie有超过1条推文,则打印出SMART ZOMBIE
<% zombies = Zombie.all %>
<ul>
<% zombies.each do |zombie| %>
<li>
<%= zombie.name %>
# add if statement here
</li>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)
我尝试了一些解决方案,但我弄错了.
我是一个iPhone开发新手,我遇到的问题与我在这里读到的一些帖子略有相似,但它们似乎都没有帮助.
我创建了一个UIScrollView带有UIView内容(子视图)的内容.在运行时,UIView使用标签和按钮填充.一切看起来都很好,滚动效果很好,但是UIButtons无论我做什么,按下时都不会开火.我已经尝试了很多这里建议的属性组合,据我所知,但仍然没有任何效果.我担心我可能误解了这个机制.
我应该提到一切都是在代码中完成的(没有IB).
有什么建议?
我即将开始构建一个具有多个模块的JS库.假设库名为Library,两个模块称为One和Two.我希望最终用户能够以两种不同的方式调用库:
Library.One.somefunction(params)
Run Code Online (Sandbox Code Playgroud)
要么
somefunction(params)
Run Code Online (Sandbox Code Playgroud)
基本上,我想给最终用户选择是否包含命名空间.有没有办法做到这一点?另外,如果我还想提供缩小版本的库,有没有一种好方法可以做到这一点?我可以在Node.js中找到这个库; 现在,我将自己使用它,但我想以这样的方式设计它,以便将来转向一个可共享的项目并不太难.
你可以指点我的任何参考都会很棒,谢谢!
我知道可以使用同时访问两个集合
for i,j in zip([1,2,3],[4,5,6]):
print i,j
1 4
2 5
3 6
Run Code Online (Sandbox Code Playgroud)
我想做的是这样的事情:
for i,j in [[1,2,3],[4,5,6]]:
print i,j
1 4
1 5
1 6
2 4
2 5
2 6
3 4
3 5
3 6
Run Code Online (Sandbox Code Playgroud)
我希望python为我自动创建嵌套for循环.当列表维度达到5或6时,我想避免在代码中使用许多嵌套for循环.这可能吗?
我见过程序员使用计数器在循环中分配事件监听器.我相信这是语法:
for(var i=0; i < someArray.length; i++){
someArray[i].onclick = (function(i){/* Some code using i */})(i);
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这背后的逻辑,这个奇怪的语法,我从来没有见过这个:
(function(i))(i);
Run Code Online (Sandbox Code Playgroud)
非常感谢您的时间和耐心.