当前位置: 首页 > 知识库问答 >
问题:

我的事件ajax keydown太慢了

方谦
2023-03-14

我有一个h:inputText的问题,我不知道如何解决它。

我正在使用JSF和RichFaces开发一个xhtml页面,其中包含日历、SelectOneMenu、InputExtArea和Input等字段。在我的表单末尾,有两个按钮“打印”和“保存”。

如果其中一个字段被修改(文本、日期等),我必须禁用打印按钮。在每个字段中,我都添加了ajax事件。

例如:

<rich:calendar datePattern="dd/MM/yyyy" timeZone="#{timeZone.timeZone}" value="#{myBean.date}">
    <f:ajax event="change" listener="#{myBean.verifyModification}" render="myForm"/>
</rich:calendar>

如果我的日期改变了,我调用存储在bean中的一个方法就可以了。

但是,我的inputText和inputTextArea有问题。

<h:inputText value="#{myBean.name}" maxlength="50">
    <a4j:ajax event="keydown" render="myForm" listener="#{myBean.verifyName}" />
</h:inputText>

如果我写得很快,例如我停留在字母a上,在我的字段中写aaaaaaaa。该字段将包含aaaaaaaa然后aaaa。是不是因为ajax事件太慢了?问题不是来自我的bean方法,因为我只测试一个值。

因此,我无法测试这个领域。我尝试过其他活动,如模糊、改变。如果我使用这些事件,我必须单击我的字段,然后我的按钮是刷新。

你能帮我一下吗?

非常感谢。

共有1个答案

葛永丰
2023-03-14

问题很可能是您渲染了完整的表单,而不仅仅是表单中需要更新的部分。然后,JSF将用您在第一个ajax请求中提交的值替换您的表单。尝试:

<h:inputText value="#{bean.name}">
    <f:ajax event="keydown" render="myButtonP" listener="#{bean.verifyName}" />
</h:inputText>

<h:panelGroup id="myButtonP">
    <h:commandButton id="printBtn" value="Print" action="#{bean.printMe}" 
        disabled="#{bean.canPrint}" />
    <h:commandButton id="saveBtn" value="Save" action="#{bean.save}" />
</h:panelGroup>

如果使用按钮上的“禁用”(disabled)而不是“渲染”(rendered),则甚至可以直接在“渲染”(render)属性中引用打印BTN。

 类似资料:
  • 自从我安装了android studio,它从来没有Eclipse快。每当我开始调试时,在设备上开始调试和运行应用程序通常需要1-2分钟。 问题:我想知道如何解决这个问题(安装windows 64位或安装其他类型的android studion或...) 我的系统配置如下所示: 配备Core i5 cpu的笔记本电脑, Windows 8.1 32位 3GB可用RAM Android Studio

  • 我有一个带有API的网站,我用它来获取JSON数据。我有一个类,每次发送请求时都会创建该类的一个实例。创建的实例时,将创建一个新的对象,ed和ed: 然而,我需要在一个循环中发送10个这样的请求。每个请求大约需要1.3秒,而所有10个请求加起来不应超过1-2秒。我发现大部分时间都花在获取输入流和处理它上:

  • 问题内容: 我正在尝试使用将大文件(> 1 GB)从硬盘复制到USB驱动器。一个描述我正在尝试做的简单脚本是: 在Linux上只需要2-3分钟。但是在Windows下,同一文件上的同一文件副本要花费10-15分钟以上的时间。有人可以解释为什么并给出一些解决方案,最好使用python代码吗? 更新1 将文件另存为test.pySource文件大小为1 GB。目的地目录位于USB驱动器中。使用ptim

  • 问题内容: 我正在尝试添加新列 到此表: 但是查询从未完成,我已经等了5分钟,什么也没发生。该表只有5,000条记录,由于它阻止了对该表的访问,我迫不及待地等待了太多时间。我有一个测试数据库(等于生产版本),并且工作非常迅速。postgres版本是9.5.6。 问题答案: 如果您运行的是PostgreSQL 9.6+,则可以用来查找锁定您的查询的PID。

  • 此代码检查一个5.1GB的大型文本文件,并检查是否有出现少于100次的单词。然后将5.1GB重写到输出文本文件中,并将这些单词替换为unk。主要问题是创建output.txt需要很长时间。我怀疑方法write_text()打开数据集文件和输出文件的方式会导致问题。 这个脚本背后的目标是:我有一个预构建的vocab和一个文本。这篇课文可能有新单词不在我的词汇表中,所以我想把它们添加到我的词汇表中。但

  • 我正在使用毕加索在一个回收视图中显示许多小的ImageViews。当我单击ImageViews时,ImageViews将其图像更改500毫秒,并在500毫秒的处理程序结束时将其更改回来。 这是代码: 我使用毕加索来防止我的应用程序出现内存崩溃。图像消失大约10毫秒,然后改变到另一个图像,在500毫秒后,它再次消失,然后改变回默认图像。它只是在我第一次点击其中的一个图像的时候才会让人失望,之后它就不