JSF/Primefaces AJAX 请求真的是异步的吗?

2024-03-15

我是 JSF 新手,所以我不知道我面临的行为是否正常。

我有这个代码:

<p:selectBooleanCheckbox id="locationChoice1" value="#{login.locationChoice1}">
    <p:ajax listener="#{login.chooseLocationType1}" update="locationChoice1 locationChoice2 positionChoice" />
    <p:ajax listener="#{login.retrieveGalaxies}" update="test"  />
</p:selectBooleanCheckbox>

My login.retrieveGalaxies函数有一个调用sleep(8000)函数来模拟延迟。我期望我的组件locationChoice1, locationChoice2 and positionChoice1 或 2 秒内更新,我的test组件要在 8 秒内更新,但全部都是在 8 秒内更新。

这是正确的行为吗?

我试着玩async参数,但没有改变结果。


它们确实是异步的(JS 上下文不会被阻止;即您可以同时运行其他任意 JS 代码而不会被阻止)。您看到的行为是因为它们已排队。所以看起来像就好像它们不是异步的一样。

该排队行为在第 13.3.2 章中指定JSF 2 规范 http://jcp.org/aboutJava/communityprocess/final/jsr314/index.html:

13.3.2 Ajax 请求排队

所有 Ajax 请求在发送到客户端之前都必须放入客户端请求队列中 服务器以确保 Ajax 请求按照发送顺序进行处理。一直在队列中等待的请求 最长的是下一个要发送的请求。发送请求后,Ajax请求回调函数必须删除该请求 从队列中(也称为出队)。如果请求成功完成,则必须将其从队列中删除。如果 发生错误,必须通知客户端,但该请求仍必须从队列中删除,以便下一个请求 可以发送。必须发送下一个请求(队列中最旧的请求)。请参阅jsf.ajax.request有关 Ajax 请求队列的更多详细信息的 JavaScript 文档。

这样做是为了确保 JSF 视图状态的完整性和线程安全性(本质上也是视图作用域 bean)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF/Primefaces AJAX 请求真的是异步的吗? 的相关文章

  • 从 BLOB 打印 PDF

    我从外部 API 获取 PDF 文件 使用此代码我可以正确下载该文件 var req new XMLHttpRequest req open POST url true req responseType blob req setReques
  • 使用 application/json contentType 的 AJAX POST 调用收到“no 'Access-Control-Allow-Origin' header”错误

    我有下面的 Javascript 函数 每当我运行它 使用 WebView 从 Android 应用程序调用它 时 它都会作为application x www form urlencoded尽管有dataType json 属性 如果我添
  • Ajax jquery 调用响应中出现 NetworkError: 403 Forbidden 错误

    我使用 apache tomcat 作为 Web 服务器 我已经在tomcat上部署了web服务 如果我通过 jquery ajax 从本地文件系统向 tomcat webservice 发布请求作为响应 我会收到 403 错误 如果我从同
  • 通过cas进行ajax调用

    我需要编写一个谷歌小工具来读取谷歌群组的提要 问题是我正在进行 ajax 调用来检索提要 而我们的 google apps 域受 CAS 中央身份验证服务 保护 因此 我在拨打电话时收到 400 错误请求 我怀疑浏览器在进行 ajax 调用
  • 不重新渲染

    我正在尝试在我的应用程序 Seam RichFaces 中显示购物车 并包含 从购物车中删除
  • TypeError: 使用 ajax 时 google.load 不是一个函数

    我正在使用 Google 图表 termcloud 来显示一些数据 我可以让它作为页面上的静态功能正常工作 但是当我尝试通过 ajax 加载图表及其资产时 它似乎一直抛出错误 TypeError google load is not a f
  • Codeigniter HMVC Ajax

    我的问题需要一些帮助 我有一个用户列表 我想在 CI HMVC 中使用 ajax 删除用户 onclick 删除按钮 这是我的列表视图的代码 function tip del click function var recId this da
  • ajax jQuery asp.net 错误意外的标记 <

    我在向现有的 asp net 4 网站添加 ajax 功能时遇到问题 我都尝试过在 aspx 页面中创建 webmethod 并尝试过 asmx 但在这两种情况下我都会收到此错误Unexpected token lt 这是我的 jQuery
  • 如何处理 Primefaces 延迟加载中的错误?

    我无法让用户知道发生的异常PrimeFaces http primefaces org LazyDataModel load方法 我正在从数据库加载数据 当引发异常时 我不知道如何通知用户 我尝试添加FacesMessage to Face
  • 如何自动检索AJAX调用的URL?

    目的是对爬行蜘蛛进行编程 使其能够 1 检索此页面表格中链接的 URL http cordis europa eu fp7 security projects en html http cordis europa eu fp7 securi
  • 在 jQuery UI 日期选择器中仅选择特定日期(日期列表来自 AJAX)

    在这里 我发送电影 ID 并获取可用天数 我想将其设置到日历中 但它不起作用并且它禁用所有日期 它从 PHP 返回日期字符串 日期字符串正确 但日历不起作用 请帮忙 日期字符串示例 28 02 2012 29 02 2012 01 03 2
  • Ajax 将文件上传到内容类型为 Multipart 的 GoLang 服务器

    我正在尝试使用多部分表单将音频文件上传到 Golang 服务器 然而 Go 返回错误 multipart NextPart bufio buffer full 我相信这表明我的 Javascript 请求中存在不属于多部分格式的内容 这是我
  • jquery/javascript 处理后移至命名锚点

    在进行一些 jquery 处理后 如何将焦点移动到同一页面上的不同部分 名为锚点 函数 ABC 进行一些处理 然后 我需要将用户移动到同一页面上的某个部分 页面下方 您可以使用下面的代码将屏幕滚动到 div 只需更改选择器以匹配您要滚动到的
  • 同时调用多个支持 bean 方法

    有没有办法从 JSF 中的不同支持 bean 调用多个方法 我有一个存储用户信息的应用程序 我有多个支持 bean 它们分为时间表 地址 电话等 当应用程序最初加载时 一切正常 但由于我的所有视图都是类型 ViewScope即使显示新用户
  • javax.faces.FacesException 无法找到 CDI BeanManager [重复]

    这个问题在这里已经有答案了 我在用 目标运行时间 野蝇14 0 动态网页模块版本 4 0 配置 动态网络模块4 0 爪哇1 8 JavaServer Faces 2 3 JSF 能力 JSF 配置文件 WEB INF faces confi
  • ajax 调用成功后点击链接 href

    我有一个正常的链接 a href http www google com class continue Continue a 我已将点击绑定到一个事件来发布 ajax 请求 如下所示 continue click function ajax
  • AJAX Rails 验证

    我的表单和验证可以很好地处理常规的 http 请求 我希望它使用 AJAX 我知道我可以在客户端进行验证 但这似乎是多余的 因为我已经在模型中定义了验证 当用户填写表单时 我想就他们的条目向他们提供反馈 在 AJAX 表单中使用 Rails
  • IE 中带有“删除”方法的 jQuery.ajax 问题

    我有一个页面 用户可以使用按钮编辑各种内容并选择触发 ajax 调用 特别是 一个操作会导致远程调用一个 url 其中包含一些数据和 放置 请求 这 因为我使用的是宁静的 Rails 后端 会触发我的更新操作 我还有一个删除按钮 它调用相同
  • 在 Struts2 中使用 AJAX 根据另一个选择菜单填充一个选择菜单

    我第一次尝试在 Struts2 中使用 AJAX 因此 我对此没有确切的想法 那里有两个
  • 如何将注销的用户重定向到 Java EE/JSF 中的主页? [复制]

    这个问题在这里已经有答案了 我需要只允许登录用户访问我的应用程序的大部分页面 我正在使用 JSF 2 开发 Java 企业应用程序 有谁知道我该怎么做 也许有一个配置文件 我在主页中有一个登录组件 我希望用户在单击页面上除少数项目之外的任何

随机推荐

  • C 是否具有函数参数名称的 __func__ 功能?

    C 标准是否支持类似的东西 func 对于函数参数的名称 不 C99标准有以下内容 6 10 8 预定义宏名称 以下宏名称应由实现定义 DATE FILE LINE STDC STDC HOSTED STDC MB MIGHT NEQ WC
  • 包括本地与远程 javascript 库

    我正在使用 jsSHA 1 3 1在这里下载 https github com Caligatio jsSHA downloads并用于我的本地主机上的学习项目 它给出的结果与我通过引用遥控器获得的副本略有不同 如下所示 现在 远程复制对我
  • 实例初始值设定项和*this*关键字[重复]

    这个问题在这里已经有答案了 尝试编译这段代码 public class Main public static void main String args new Main System out println x Error here in
  • Internet Explorer 中的淘汰赛验证错误?

    在我的剃刀观点中 使用knockout http knockoutjs com据说敲除验证 https github com ericmbarnard Knockout Validation我添加以下行 以实际开始使用 ko 验证 Scri
  • 并行运行过程 - Oracle PL/SQL

    我正在尝试使用 dbms scheduler 并行运行存储过程 Oracle PL SQL 但出现类似未知作业的错误 我也尝试过 dbms job 这里出现错误 必须声明标识符 dbms jobs 有人可以帮我吗 以下是我尝试过的两种方法
  • 如何制作 text-decoration: 下划线和 2px 填充?

    我喜欢听话的前端开发人员必须创建带有 2 像素填充的下划线 而不是默认的 1 像素 是否存在简单的解决方案 PS 是的 伙计们 我知道 div 具有黑色背景颜色和 1px Npx 和位置 相对 但它太慢了 对于交叉浏览 最好使用text u
  • 替换git中的master分支并防止快进

    我在 github 上有一个库 大约一年前 我完全重写了该应用程序 但不向后兼容 它位于一个名为 结构化 的分支上 现在大多数安装该库的人都在使用该分支 我想将其设为主分支并将当前主分支移至 旧版 我不希望使用旧主机的人能够快进到新主机 因
  • 如何使用 Seed.rb 有选择地填充开发和/或生产数据库?

    我正在使用 seeds rb 来填充我的开发和生产数据库 我通常用虚拟数据填充第一个 然后用我的应用程序运行所需的实际最小数据 例如第一个用户等 填充后者 如何在 Seed rb 中指定每个数据的环境 鉴于我知道 group 是一个 Gem
  • 何时应使用链表的现实世界示例有哪些?

    另一位程序员提到 在他的职业生涯中 他们还没有在任何专业软件中找到使用链表数据结构的用例 我一时想不出什么好的例子 他主要是 C 和 Java 开发人员 谁能举一些例子来说明这是解决特定现实世界问题的正确数据结构 Related 链表的实际
  • 询问 Python 值“是否可散列”

    我感兴趣的是采用任意字典并将其复制到新字典中 并一路改变它 我想做的一项改变是交换键和值 不幸的是 有些价值观本身就是命令 但是 这会生成 不可散列类型 dict 错误 我真的不介意只是将值字符串化并为其提供密钥 但是 我希望能够做这样的事
  • 是否可以在 Chrome 开发者工具元素面板中选择多个元素?

    是否可以在 Chrome 开发者工具元素面板中一次选择多个元素 对于删除多个同级元素或快速重新排序非常有用 我期望Command Click or Shift Click这样做但没有成功 答案是否定的 在 Chrome 开发工具中一次无法选
  • Python kivy - 如何减少TextInput的高度

    我正在使用 kivy 为应用程序制作一个非常简单的 GUI 没什么复杂的 布局非常简单 尽管如此 我在 TextInputs 方面遇到了困难 它们总是以全高显示 我无法设法使它们调整到 合理的 文本高度 如高度 我正在使用 kv 文件样式
  • 使用 QQuickImageProvider 的正确方法是什么?

    我需要动态选择 qpixmaps 以显示在 QML 图像项中 该 qpixmaps 应该从源 qpixmap 中裁剪出来 我将从 QML 文件中设置它 我希望它们能够根据 QML 的第一个需求被 C 代码裁剪并缓存以供将来使用 对于动态图像
  • 使用 Javascript 重新定位

    我试图根据特定条件在页面上重新定位 div if somecondition document getElementById Div1 setAttribute style position absolute left 297px top
  • Android Studio 上的 Flutter 崩溃

    Android studio崩溃并且无法运行项目 flutter升级到2 0后 flutter doctor 没有问题 dart 修复不起作用 建议在这里 Flutter项目升级到2 0 0后编译错误 https stackoverflow
  • 在网格视图上突出显示所选项目

    我试图突出显示 gridview 上的选定项目 使用适配器动态填充 但它不起作用 我做了研究 我什至尝试准确复制其他人的选择器 甚至他们将其放在 gridview 上的方式 但我无法让它工作 它只是没有做任何事情 每个项目的背景都是白色的
  • websocket消息会丢失吗?

    我目前正在开发一个 Java WebSocket 客户端应用程序 我必须确保客户端收到来自服务器的每条消息 由于连接中断 我是否可能丢失一些消息 一旦从服务器发送消息 WebSocket 基于 TCP 所以这种情况不应该发生 对吗 这有可能
  • 长双精度文字的 C++ 后缀是什么?

    在 C 和 C 中 不带后缀的浮点文字默认为double 而后缀f意味着一个float 但是获得 a 的后缀是什么long double 在不知道的情况下 我会定义说 const long double x 3 14159265358979
  • 什么是 CDI 豆?

    我有点困惑 我们将 CDI bean 称为我们注入它们的 bean Inject注释或我们使用的bean Inject他们里面 CDI豆是 CDI 可以实例化 管理和注入的类 自动满足其他对象的依赖关系 几乎任何 Java类可以由CDI管理
  • JSF/Primefaces AJAX 请求真的是异步的吗?

    我是 JSF 新手 所以我不知道我面临的行为是否正常 我有这个代码