小编Tim*_*imo的帖子

如何在网站上播放通知声音?

当某个事件发生时,我希望我的网站向用户播放简短的通知声音.

声音应该自动启动(瞬间)当网站被打开.相反,它应该通过JavaScript按需播放(当某个事件发生时).

重要的是,这也适用于旧浏览器(IE6等).

所以,基本上有两个问题:

  1. 我应该使用什么编解码器?
  2. 嵌入音频文件的最佳做法是什么?(<embed>vs. <object>vs. vs. vs. <audio>)

html javascript audio notifications html5-audio

95
推荐指数
6
解决办法
11万
查看次数

为什么在CSS3中启用硬件加速会降低性能?

我正在css3实验中移动6000个小div元素,使用从top: 0转换top: 145px到测试性能.

在谷歌浏览器上使用硬件加速运行平稳.

如果我通过translateZ(0)性能启用硬件加速变得可怕.

为什么会这样?

这是我的示例代码:http://dl.dropboxusercontent.com/u/17844821/tmp/hwtest.html


更新(2014-11-13):由于这个问题仍然引起人们的注意,我想指出问题本身似乎仍然存在,尽管在现代硬件上提供的演示中,所提到的口吃可能不再可见.较旧的设备可能仍然会出现性能问题.

css css3 hardware-acceleration css-transitions

81
推荐指数
3
解决办法
5万
查看次数

jstack:目标进程没有响应

我正在运行Ubuntu服务器版,我想采取Tomcat的线程转储.

所以,我首先尝试找出哪个PID tomcat使用:

$ jps -l
5809 sun.tools.jps.Jps
Run Code Online (Sandbox Code Playgroud)

但它不在那里?

所以,我用了之后top发现了PID 5730.

然后我调用jstack来获取线程转储:

$ sudo jstack -l 5730
5730: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?:-(

我已经尝试按照Jstack中的描述导出CATALINA_TMPDIR,并且Jstat停止使用升级到JDK6u23但是没有改变任何东西:

$ export CATALINA_TMPDIR=/tmp
$ sudo /etc/init.d/tomcat6 restart
 * Stopping Tomcat servlet engine tomcat6
   ...done.
 * Starting Tomcat servlet engine tomcat6
   ...done.
$ sudo jstack -l 5934 // …
Run Code Online (Sandbox Code Playgroud)

java jstack thread-dump

46
推荐指数
2
解决办法
8万
查看次数

为什么iframe.contentWindow == null?

我使用以下代码动态创建iframe.

var iframe_jquery = $("<iframe>")
    .addClass("foo")
    .appendTo(container); // container is a jQuery object containing a <div> which already exists
Run Code Online (Sandbox Code Playgroud)

然后,我想访问其contentWindow,但它是null:

var iframe = iframe_jquery.get(0);
if (iframe){ // iFrame exists
    console.log(iframe.contentWindow); // Prints "null"
    var doc = iframe.contentWindow.document; // NullpointerException
}
Run Code Online (Sandbox Code Playgroud)

所以我想:"也许iframe尚未准备好了吗?" 所以我尝试过:

iframe_jquery.ready(function(){
    var iframe = iframe_jquery.get(0);
    console.log(iframe.contentWindow); // Prints "null"
    var doc = iframe.contentWindow.document; // NullpointerException
});
Run Code Online (Sandbox Code Playgroud)

结果相同.

怎么了?

html javascript iframe dom

43
推荐指数
3
解决办法
7万
查看次数

如何修复Eslint错误"prefer-destructuring"?

我想在ES6中缩短对象文字,如下所示:

const loc = this.props.local;
Run Code Online (Sandbox Code Playgroud)

原因是loc.foo();打字要容易得多this.props.local.foo();

但现在ESLint抱怨说:

使用对象解构:prefer-destructuring

我已经阅读了eslint.org上错误说明,但我不明白.他们有一个看起来与我的代码非常相似的例子,但他们似乎没问题?

var foo = object.bar;
Run Code Online (Sandbox Code Playgroud)

如何在不将.eslintrc文件设置为忽略的情况下修复错误?

javascript ecmascript-6 eslint

37
推荐指数
2
解决办法
3万
查看次数

如何防止文档滚动但允许在iOS和Android网站上的div元素内滚动?

我用iOS和Android的jQueryMobile创建了一个网站.

我不希望文档本身滚动.相反,只有一个区域(一个<div>元素)应该是可滚动的(通过css属性overflow-y:scroll).

所以我通过以下方式禁用文档滚动:

$(document).bind("touchstart", function(e){
    e.preventDefault();
});

$(document).bind("touchmove", function(e){
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

但是,无论是否overflow:scroll设置,这也将禁用文档中所有其他元素的滚动.

我怎么解决这个问题?

javascript html5 scroll css3 jquery-mobile

32
推荐指数
3
解决办法
8万
查看次数

Android应用:如何从自定义网址方案中读取参数?

基本上,我有相同的问题描述如何在Android上实现我自己的URI方案

给出的答案对我有用.当自定义url被称为MyUriActivity's方法onCreate并被onStart调用时.

如何从内部访问get参数MyUriActivity

例:

myapp://path/to/what/i/want?d=This%20is%20a%20test

MyUriActivity我需要读取get参数的值d.

我怎么做?

url android url-scheme android-activity

31
推荐指数
1
解决办法
3万
查看次数

找到等待/休眠线程的原因

我注意到我的java应用程序(在tomcat6上运行)产生了许多不终止的线程.

所以我创建了一个线程转储,并注意到有大量的线程在等待,如下所示:

"pool-1-thread-22" prio=5 tid=101b4b000 nid=0x127122000 waiting on condition [127121000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <6c340cee0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:680)
   Locked ownable synchronizers:
    - None
Run Code Online (Sandbox Code Playgroud)

现在的问题是:这些线程在等什么?我怀疑类似乎产生了这些线程,但我不知道究竟是什么让这些线程卡住了.

我有什么办法可以找到原因,除了逐行撕开类并保持监视线程行为?

java multithreading

30
推荐指数
2
解决办法
4万
查看次数

是或否:MVC中的模型是否包含应用程序逻辑?

昨天我与我们的一位开发人员就MVC进行了一些讨论,更准确地说是模型组件在MVC中的作用.

在我看来,模型应该只包含属性而几乎没有功能,因此模型类中的方法尽可能少.

我的同事虽然认为模型可以而且应该具有更多功能并提供更多功能.

这是我们争论的一个例子.

例1

假设我们想创建一个博客.博客有文章和标签.每篇文章可以有多个标签,每个标签可以属于多个文章.所以我们在这里有关系.

在伪代码中它可能看起来像这样:

class Article{
    public int id;
    public String title;
    public String content;
    public Tag[] tags;

    // Constructor
    public void Article(id, title, content, tags){
        this.id = id;
        this.title = title;
        this.content = content;
        this.tags = tags;
    }
}

class Tag{
    public int id;
    public String name;

    // Constructor
    public Tag(id, name){
        this.id = id;
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,假设我们正在松散耦合这里意味着我们可能会发生一个没有标签的文章实例,所以我们将使用Ajax调用(对于我们的后端,它有一个包含所有信息的数据库)获取属于我们文章的标签.

这是棘手的部分.我相信通过Ajax + JSON获取后端数据应该是控制器的工作,使用专用类,使用解析器处理ajax请求:

class MyController{
    private void whatever(articleID){
        Article article = (Article) ContentParser.get(articleID, ContentType.ARTICLE);
        doSomethingWith(article); …
Run Code Online (Sandbox Code Playgroud)

model-view-controller design-patterns

28
推荐指数
4
解决办法
2万
查看次数

通过 GitHub Web UI 进行压缩合并时如何强制执行提交消息策略?

我们确实有一个提交钩子来强制执行遵循配置约定的消息:

包.json

"husky": {
    "hooks": {
        "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
        "pre-commit": "yarn format:check",
        "pre-push": "yarn run test"
    }
},
"commitlint": {
    "extends": [
        "@commitlint/config-conventional"
    ],
    "rules": {
        "scope-case": [
        0,
        "always",
        "pascal-case"
        ]
    }
},
Run Code Online (Sandbox Code Playgroud)

但是,如果我将 PR 与挤压策略合并(通过 github Web ui),则可能会隐藏提交消息,因为此处未强制执行该策略:

feat: [TICKET-209] add completion tests
Added build instructions to README.md <-- Added via squash
feat: [TICKET-208] improve tests
Run Code Online (Sandbox Code Playgroud)

GitHub 历史记录的这一部分是通过挤压添加第二行的结果,因此没有被检查/拒绝。

有没有解决方案可以拒绝通过 github Web ui 上的挤压添加的无效提交消息?

git github

18
推荐指数
1
解决办法
1427
查看次数