小编age*_*arn的帖子

使用javascript在Android虚拟键盘上键入捕获键

我有一个带有textarea的网页,我需要捕获用户键入的键(这样我就可以用键入的键替换不同的unicode字符).我目前的代码如下:

$("#myTextArea").bind('keypress', function(event) {

    var keyInput = event.which;
   // call other functions

});
Run Code Online (Sandbox Code Playgroud)

以上代码适用于PC和iPhone/Safari.但是,在Android(三星)平板电脑上使用Chrome时失败了.出于某种原因,当我在android虚拟(软)键盘上键入时,不会触发"按键"事件.Android版本是5.0.2.

如果我尝试使用"keyUp"或"keyDown",它总是为所有字符返回229(返回键,空格,退格键等除外).

即使keyCode始终为229,textarea也会显示用户键入的正确字符.这意味着设备知道输入了哪个密钥,但不知怎的,我无法使用javascript来处理此事件(和密钥代码).

以下是我迄今为止尝试过的替代方案及其结果:

$("#mainTextArea").on("keydown keyup", function(event) { 
    // event.which and event.keyCode both return 229

$(document).on('keypress', function(event) { 
    // function is not triggered

$('#myTextArea').bind('input keypress', function(event) { 
   // comes inside function, but keyCode and which are undefined
Run Code Online (Sandbox Code Playgroud)

有关此问题的任何帮助表示赞赏..

javascript jquery android samsung-mobile

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

每个主题可以有一个 Kafka 消费者线程吗?

我们有使用 Spring-Kafka (2.1.7) 的 Springboot 应用程序。我们启用了并发,因此每个分区可以有一个消费者线程。所以目前,如果我们有 3 个主题,每个主题有 2 个分区,就会有 2 个消费者线程,如下所示:

ConsumerThread1 - [topic1-0, topic2-0, topic3-0]
ConsumerThread2 - [topic1-1, topic2-1, topic3-1]

然而,不是每个分区一个 KafkaListener(或消费者线程),我们希望每个主题一个消费者线程。例如:

ConsumerThread1 - [topic1-0, topic1-1]
ConsumerThread2 - [topic2-0, topic2-1]
ConsumerThread3 - [topic3-0, topic3-1]

如果这是不可能的,即使以下设置也可以:

ConsumerThread1 - [topic1-0]
ConsumerThread2 - [topic1-1]
ConsumerThread3 - [topic2-0]
ConsumerThread4 - [topic2-1]
ConsumerThread5 - [topic3-0]
ConsumerThread6 - [topic3-1]

问题是我们事先不知道完整的主题列表(我们使用通配符主题模式)。可以随时添加新主题,并且应该在运行时为这个新主题动态创建一个新的消费者线程(或多个线程)。

有什么办法可以实现吗?

java apache-kafka spring-boot spring-kafka

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