小编Mic*_*ski的帖子

Javascript检测在Mouseup上保持的控制键

我搜索了很多,似乎找不到满意的解决方案.我希望有人能帮帮忙.

当我使用jQuery时,我也在编写数千行Javascript.所以一个"纯粹的"JavaScript解决方案就好了.

我正在尝试确定控制键是否在物理上按下鼠标事件.而已; 没有其他先决条件.有没有人知道如何可靠,跨浏览器这样做?

我已经尝试通过记录按下和释放按键时将其存储在状态变量中:

// BEGIN store control key status in hash_state
$().bind('keydown','ctrl',function( arg_obj_e ){
  hash_state.sw_ctrldn = true;
  console.debug( hash_state.sw_ctrldn );
});
$().bind('keyup','ctrl',function( arg_obj_e ){
  hash_state.sw_ctrldn = false;
  console.debug( hash_state.sw_ctrldn );
});
// END store control key status in hash_state
Run Code Online (Sandbox Code Playgroud)

但是,这确实不起作用.如果你使用firebug测试它并观察控制台,你会发现自动重复似乎发生了,并且值切换.

我检查了mouseup事件以查看是否有任何有用的东西,但无济于事:

var debugEvent = function( arg_obj_e ){
  var str = '';
  for ( var attr in arg_obj_e ){
    str += attr + ': ' + arg_obj_e[attr] + '\n';
  }
  console.debug(str);
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

javascript jquery javascript-events

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

检查缓存的jquery对象是否仍在DOM中

有谁知道如何判断缓存的jQuery对象是否已过时,例如不再在DOM中?例如:

var $cached_elem = $('.the_button');

// .. and then later

$cached_elem.text('updating...');
Run Code Online (Sandbox Code Playgroud)

我最近遇到了由于某些其他事件而从DOM中删除$ cached_elem的情况.那么我想做什么:

if ( $cache_elem.isStillInDOM() ){
  // now do time consuming stuff with $cached_elem in DOM 
}
Run Code Online (Sandbox Code Playgroud)

在任何人提供之前,我已经使用过这个,这对于我正在尝试做的事情来说是公平的模拟:

if ( $cached_elem.is(':visible') === true ){ ... }
Run Code Online (Sandbox Code Playgroud)

但是,这并不是一回事,在某些情况下可能会失败.

那么,任何人都可以想到一个简单的方法来直接检查缓存的jQuery对象是否"陈旧"?如果不是,我可能会被迫写一个插件......

javascript jquery jquery-plugins

15
推荐指数
2
解决办法
5176
查看次数

浏览器缓存控制,动态内容

问题:我似乎无法让FireFox缓存从动态服务器发送的图像

设置:静态Apache服务器,在后端具有反向代理到动态服务器(mod_perl2).

这是服务器的请求URL.它被发送到动态服务器,其中cookie用于验证对映像的访问:

请求标题

Host:  <OBSCURED>
User-Agent:  Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15
Accept:  image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset:  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive:  300
Connection:  keep-alive
Referer: <OBSCURED>
Cookie:  pz_cred=4KCNr0RM15%2FJCOt%2BEa6%2BL62z%2Fxvbp2xNQHY5pJw5d6Q
Pragma:  no-cache
Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)

动态服务器将图像流回服务器,并提供以下响应:

响应标题

Date:  Tue, 24 Nov 2009 04:28:07 GMT
Server:  Apache/2.2.11 (Ubuntu) mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0
Cache-Control: public, max-age=31536000
Content-Length:  25496
Content-Type:  image/jpeg
Via: 1.1 127.0.1.1:8081
Keep-Alive:  timeout=15, max=75
Connection:  Keep-Alive
Run Code Online (Sandbox Code Playgroud)

到目前为止,这么好(我认为).但是,在重新加载页面时,图像不会显示为缓存,并再次发送请求:

请求标题

Host: <OBSCURED>
User-Agent:  Mozilla/5.0 (X11; U; …
Run Code Online (Sandbox Code Playgroud)

browser cache-control mod-perl2

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