小编Sla*_*ish的帖子

将tabindex限制为页面的一部分

情况:

我有一个网页打开模态窗口(灯箱),其中包含用户可以输入数据的表单.用户通常使用键盘进行导航,从一个字段切换到下一个字段.

问题:

打开模态窗口时,只有窗口处于活动状态,使用鼠标无法访问页面的其余部分,但可以通过从模式窗口中跳出来访问元素.

题:

如何通过使用选项卡按钮仅限表单窗口中的元素来限制移动?

我唯一能想到的是tabindex=-1在打开模态窗口时使用Javascript设置所有表单元素(和其他可聚焦元素),然后在tabindex关闭模态窗口时将值设置回其先前的值.有更简单/更好的方法吗?

html javascript modal-popup tabindex

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

C - exec是否必须在多线程进程中立即跟随fork?

情况: 我有一个用C编写的多线程程序.如果其中一个线程分叉,子进程被另一个用exec()替换,父进程等待子进程退出.

问题: 在fork()创建子进程之后,有几行代码可以编译要在以下exec()命令中使用的参数.

假设 我假设在fork()创建子进程和被exec()替换之间的时间内,子进程 - 作为父进程的副本 - 将具有父进程的所有线程,因此这些正确线程将会运行 - 尽管时间很短?

如果是这样,在fork()之后立即调用exec()的正确解决方案是什么?

c multithreading fork pthreads exec

10
推荐指数
1
解决办法
3702
查看次数

在按键上关闭ModalWindow

我希望能够在用户按下键时关闭ModalWindow,在我的情况下是ESC.

我有一个用于keypress的Javascript监听器,它调用取消按钮的ID的click事件:

jQuery("#"+modalWindowInfo.closeButtonId).click();
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

我想知道因为它适用于Chrome但不适用于FF,但它可能是由于我的具体实现.

java wicket keypress modal-window

6
推荐指数
1
解决办法
3446
查看次数

Wicket:并发Ajax请求仅限于一个?

情况

在我的Wicket应用程序中,我有一个包含两个标签的页面.每次选择一个选项卡时,都会通过Ajax获取其内容,这样每次切换到另一个选项卡时,它的内容都会从服务器中新加载.

在其中一个选项卡上,我有一个输入字段,其中包含一个onblur事件,该事件通过Ajax保存字段的内容.

问题

如果焦点在输入字段上,我单击页面的空白区域,它会触发Ajax请求并保存数据.

如果不是单击页面的空白区域,而是单击另一个选项卡,则会触发保存输入字段的Ajax请求,但不会切换标签的Ajax请求.

Wicket中并发Ajax请求的数量是否限制为一个?

ajax wicket

6
推荐指数
2
解决办法
2521
查看次数

strands如何保证在boost.asio中正确执行挂起事件

考虑使用Boost.asio实现的echo服务器.从连接的客户端读取事件会导致数据块被放置到到达事件队列中.线程池通过这些事件工作 - 对于每个事件,线程获取事件中的数据并将其回送到连接的客户端.

在此输入图像描述

如上图所示,事件队列中可能存在多个来自单个客户端的事件.为了确保按顺序执行和交付给定客户端的这些事件,使用了股数.在这种情况下,来自给定连接客户端的所有事件都在客户端的链中执行.

我的问题是:股如何保证事件处理的正确顺序?我认为必须存在某种锁定链,但即使这样也是不够的,所以必须有更多,我希望有人可以解释一下我们指向一些代码来做到这一点?

我找到了这个文档: 如何工作以及为什么要使用它们

它揭示了这种机制的一些亮点,但是在一条链中说"处理程序执行顺序无法保证".这是否意味着我们最终会收到"永远的草莓."字段?

此外 - 每当新客户端连接时,我们是否必须创建一个新的链,以便每个客户端有一个链?

最后 - 当读取事件到来时,我们如何知道将其添加到哪个链?使用连接作为关键,必须从所有股线中查找钢绞线?

c++ multithreading boost-asio

6
推荐指数
2
解决办法
1239
查看次数

Java socketserver:如何处理许多传入连接?

我正在编写一个简单的多线程socketserver,我想知道如何最好地处理传入的连接:

  1. 为每个新连接创建一个新线程.并发线程数将受到限制,并且通过指定积压来限制等待连接

  2. 将所有传入连接添加到队列中,并拥有一个处理队列的工作线程池

我倾向于选择2,因为我真的不想拒绝任何连接,即使在高负载下也是如此,但我想知道是否有任何考虑我应该注意接受有效的无限连接?

java sockets connection multithreading

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

事件订阅源实施 - 它会扩展吗?

情况:

我目前正在为社交网站设计一个供稿系统,每个用户都有一个朋友活动的供稿.我有两种可能的方法来生成Feed,我想问一下哪种方法最适合扩展.

所有用户的事件都收集在一个中央数据库表中event_log.用户在表格中与朋友配对friends.我们使用的RDBMS是MySQL.

标准方法: 当用户请求它们的饲料页,系统产生由内加入进料event_logfriends.然后缓存结果并在5分钟后设置为超时.通过改变此超时来实现缩放.

假设方法: 任务在后台运行,对于每个新的未处理项目event_log,它在数据库表中创建条目,将该user_feed事件与发起事件的用户的所有用户配对.一个表行将一个事件与一个用户配对.

标准方法的问题是众所周知的 - 如果很多人的缓存同时到期会怎么样?该解决方案也无法很好地扩展 - 简要介绍了尽可能接近实时更新的订阅源

我眼中的假设解决方案似乎好多了; 所有处理都是脱机完成的,因此没有用户等待生成页面,也没有连接,因此数据库表可以跨物理机进行分片.但是,如果用户有100,000个朋友并在一个会话中创建20个事件,则会导致将2,000,000行插入数据库.

题:

问题归结为两点:

  • 上面提到的这种最坏情况是否有问题,即表大小是否会对MySQL性能产生影响,是否存在针对每个事件大量插入数据的问题?
  • 还有什么我错过的吗?

mysql database-design feeds scalability social-networking

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

标准SQL - CHAR到ASCII

使用标准SQL,SQL-92,如何将字符转换为ASCII值?

在MySQL中,使用ascii()函数很容易,但SQL-92没有这个.

sql standards ascii char

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

TEMP_FAILURE_RETRY和__USE_GNU

我在使用GCC的Ubuntu 10.04上,我想使用宏TEMP_FAILURE_RETRY,如下所述:

http://www.gnu.org/s/hello/manual/libc/Interrupted-Primitives.html

但是,当我编译时,我收到以下错误:

undefined reference to `TEMP_FAILURE_RETRY'
Run Code Online (Sandbox Code Playgroud)

我查看了unistd.h,其中定义了宏,并且前面是:

#ifdef __USE_GNU
Run Code Online (Sandbox Code Playgroud)

如何让我的代码编译和使用这个宏?我可以在代码中使用相同的#ifdef __USE_GNU将其包装起来吗?

c

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

通过信号中断两个阻塞pthread

在我的应用程序中,主线程创建两个连接的线程; 一个通过在循环中调用scanf()来等待用户输入,另一个通过在循环中调用accept()来监听传入的套接字连接.新连接在分离的单独线程中处理.

我希望程序在收到SIGINT信号时正常关闭.这意味着监听线程应该停止接受新连接,等待当前服务连接的线程关闭然后再关闭.等待用户输入的线程也应该结束,从而允许主线程结束.

Scanf()和accept()都是阻塞但可以被信号中断,但是发送到进程的信号只能由一个线程(AFAIK)处理.我的想法是阻止所有线程中的SIGINT信号,除了将等待它的主线程.当它收到一个SIGINT时,它会将SIGUSR1发送到两个线程(一个阻塞在scanf()上,一个阻塞在accept()上),然后加入这些线程.

这是一个好的解决方案吗?有没有更好的或可能是标准的方法来实现这一目标?

c signals pthreads

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