小编exx*_*us7的帖子

DOM需要很长时间才能做出反应

我试图通过改变DOM对象的源来每100ms从一个文件"获取"一个图像.我可以看到GET调用确实每隔100ms返回正确的图像,但实际的图像显示仅每秒更新一次.这是我的JavaScript代码,它完成了以下工作:

<img id="videoDisplay" style="width:800; height:600"/>

<script type="text/javascript">
  function videoDataPoll(filename) {
    setTimeout(function() {
      document.getElementById("videoDisplay").src = filename + "?random="+(new Date()).getTime();
      videoDataPoll(filename);
    }, 100);
  }
</script>
Run Code Online (Sandbox Code Playgroud)

更新:更改函数以使用预加载如下:

<canvas id="videoDisplay" style="width:800; height:600"/>

<script type="text/javascript">
  var x=0, y=0;
  var canvas, context, img;
  function videoDataPoll() {
    var filename = getFilename();   
    canvas = document.getElementById("videoDisplay");
    context = canvas.getContext("2d");
    img = new Image();
    img.onload = function() {
      context.drawImage(img, x, y);
      setTimeout("videoDataPoll()", 100);
    }
    img.src = filename + "?random=" + (new Date()).getTime();
  }
<script>
Run Code Online (Sandbox Code Playgroud)

仍然以相同的速度更新(实际上每5秒,而不是最初声明的1秒).因此,对于每50个获取请求(10秒/秒,5秒),元素仅更新一次.

另一个重要注意事项:第二个解决方案在我的本地主机上完美运行,我遇到的问题是当我从远程主机运行相同的网页时.

html javascript jquery dom image

5
推荐指数
1
解决办法
915
查看次数

浏览器GET请求返回旧图像

我正在尝试使用GET请求从服务器检索图像.图像不断变化,所以我想每秒抓取几次图像(目的是显示图像并最终模仿视频).但是,GET请求出了问题.无论我尝试获取图像的速度有多快(每1秒,100毫秒等尝试一次),它每5秒钟只返回一个新图像.它表现得像某个缓存的图像,它只是每5秒更新一次缓存,所有其他时间都会返回旧的,重复的图像.

我已经做了以下尝试来解决问题:

  • 验证服务器端的图像实际上每100毫秒左右更新一次,这意味着网页确实返回了大部分GET请求的旧图像,
  • 通过开发人员选项以及以隐身模式运行网页,关闭浏览器缓存.这是Chrome的方式.
  • 通过在配置文件中设置maxKeepAliveRequests = 1(禁用)来关闭Tomcat服务器中的keepalive.

然而它仍然只是每5秒检索一次新图像.

Example Request Headers:
  Cache-Control: no-cache
  Connection: keep-alive     <-- Could this be the problem? 
  Pragma: no-cache

Example Response Headers:
  Cache-Control: no-cache
  Cache-Control: no-store
  Connection: close
  Pragma: no-cache
  Server: Apache-Coyote/1.1
Run Code Online (Sandbox Code Playgroud)

我的查询(每次加载图像后经过一段时间后执行):

document.getElementById("videoDisplay").src = filename + "?random="+(new Date()).getTime();
Run Code Online (Sandbox Code Playgroud)

html javascript jquery tomcat image

5
推荐指数
1
解决办法
372
查看次数

使用java连接到远程mongodb服务器

我正在尝试连接到远程mongodb实例,但它一直在抛出错误.

Java代码:

Mongo mongo = new Mongo("172.234.52.24");
DB db = mongo.getDB("myDB");
collection = db.getCollection("myCollection");
Run Code Online (Sandbox Code Playgroud)

但我一直得到以下例外:

java.io.IOException: couldn't connect to [/172.234.52.24:27017] bc:java.net.ConnectException: Connection refused
Run Code Online (Sandbox Code Playgroud)

我还有别的办法吗?当我尝试访问数据库或更改mongo端的某些权限时设置用户名/密码?它只是在ubuntu服务器上安装正常的mongo,没有添加配置或权限.

附加信息:mongo 172.234.52.24:8888也不起作用,说例外:连接失败.我可以ping其他主机,并且知道mongo正在运行它.

有任何想法吗?谢谢!

java networking mongodb mongodb-java

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

Java 类路径找不到 MySQL 驱动程序

每当我运行以下代码时:

import com.mysql.jdbc.Driver;

public void insertIntoMysql() {

    // Print out classloader information
    ClassLoader cl = ClassLoader.getSystemClassLoader();
    URL[] urls = ((URLClassLoader) cl).getURLs();
    String urlStr = "";
    for (int i=0; i < urls.length; i++) {
       urlStr += urls[i].getFile() + "\n";
    }
    System.out.println("Classpath:\n" + urlStr);

    // connect to mysql
    Class.forName("com.mysql.jdbc.Driver");
    String myUrl = "jdbc:mysql://localhost:3306/Compass";
    Connection conn = DriverManager.getConnection(myUrl, "root", "newpoint");

    ...
}
Run Code Online (Sandbox Code Playgroud)

我在 Class.forName 行收到“ClassNotFoundException: com.mysql.jdbc.Driver”错误。但是,我的类路径打印为:

Classpath: 
... 
/C:/myProjectDir/
Run Code Online (Sandbox Code Playgroud)

我的类路径中有以下 jar“/C:/myProjectDir/mysql-connector-java-5.0.8-bin.jar”。

我已经重新启动了程序,以防万一程序启动时 ClassLoader 正在加载所有内容,但我不断收到该错误。

有什么想法吗?

java mysql jdbc

4
推荐指数
1
解决办法
3531
查看次数

标签 统计

html ×2

image ×2

java ×2

javascript ×2

jquery ×2

dom ×1

jdbc ×1

mongodb ×1

mongodb-java ×1

mysql ×1

networking ×1

tomcat ×1