小编Nik*_*kki的帖子

使用if-else简写时省略第二个表达式

没有别的,我可以写'if else'速记吗?

var x=1;

x==2 ? dosomething() : doNothingButContinueCode();   
Run Code Online (Sandbox Code Playgroud)

我注意到if else了其他的工作(但我不知道为什么或者这是个好主意).

编辑:有些人似乎很困惑为什么我会费心去尝试这个.请放心,这纯粹是出于好奇.我喜欢乱搞JavaScript.

javascript ternary-operator conditional-operator shorthand

279
推荐指数
6
解决办法
63万
查看次数

GIF,Javascript和多个实例

也许是一个愚蠢的问题,但无论如何都要进行

示例:假设我有一个非循环动画GIF,我有两个img元素.

<img src="" id="slot1" />
<img src="" id="slot2" />
Run Code Online (Sandbox Code Playgroud)

所以我用一点javascript来改变slot1的来源.

function changE(x)
{var image=document.getElementById (x);
 image.src="animated.gif";
}

someButtonGotClicked=changE('slot1'); 
Run Code Online (Sandbox Code Playgroud)

工作正常.Gif从头到尾播放,但如果我然后将slot2的src更改为相同的gif:

changE('slot2');  
Run Code Online (Sandbox Code Playgroud)

slot1重置它的gif回到开始与slot2同步,启动它的gif.

现在我知道我可以复制gif并使用2个单独的文件,我知道精灵表但是我很好奇如果我可以使用gif的一个副本并且在页面上多次使用它而没有所有的实例每次重新启动gif时,另一个img元素会收到与src相同的文件吗?

希望不要混淆.谢谢.

javascript gif

7
推荐指数
1
解决办法
1385
查看次数

从EDT派遣任务到主要任务?

我一直在阅读有关并发的内容(这让我很头疼).

我了解你可以设置一个任务,使用以下命令从主线程在EDT上运行:

SwingUtilities.invokeLater
Run Code Online (Sandbox Code Playgroud)

但你可以设置一个任务在EDT的主线程上运行吗?

如:

Thread mymainthread=Thread.currentThread();//<referring to the thread that initially kicks off public static void main

public void mousePressed(MouseEvent e){ //queue a task to run on mymainthread }
Run Code Online (Sandbox Code Playgroud)

可以吗?这是个坏主意吗?

关于SO的另一个问题(这里)谈到创建一个新线程,但如果我的目标是单线程(+ EDT)应用程序,那么继续使用main是不是更安全和更简单?.......或者也许我错了.

编辑:我应该解释:我想创建在主线程上相互通信的对象(在慢循环中运行),所以我不希望它们中的任何一个在不同的线程,edt或其他方面实例化.

java concurrency swing multithreading event-dispatch-thread

2
推荐指数
1
解决办法
182
查看次数