问题标签 [reverse-ajax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
783 浏览

asp.net-mvc - ASP.NET MVC 异步控制器与服务器推送(COMET/反向 Ajax)

我正在构建一个 ASP.NET MVC站点,其中客户端(浏览器)可以进行最多需要 30 分钟(或更多..)处理的 API 调用。显然,我不能使用普通的 MVC 控制器来执行此操作,因为一些这样的请求会阻塞我所有的 IIS 工作线程,从而阻塞其他更快的调用。

我查看了以下两个选项:

  1. ASP.NET MVC 的异步控制器
  2. PokeIn库允许服务器通过反向 AJAX(长期持有旧浏览器的 HTTP 请求)或 WebSockets(来自新浏览器的 HTML5 规范)推送

现在这两者似乎都是一个不错的可行选择。

选项 1 对我来说似乎最容易实现。使用异步控制器,我的 IIS 工作线程不会被阻塞,因此我的其他更快的 API 调用可以无缝通过。但是,从异步控制器文档中,我认为,它会产生另一个非 IIS 线程,该线程将被阻塞/等待我长时间运行(30~ 分钟)的进程完成。我读到过,“如果您在控制器中阻塞或休眠,无论它是异步还是非异步,都非常糟糕。”

在选项 2 中,如果我的客户端使用支持 WebSockets 的较新浏览器,这可能是最高效的,因为我不需要在服务器端有任何阻塞线程。当客户端触发缓慢的 API 调用时,我会引发一个事件,在该事件完成后(比如 30 分钟后),我会引发另一个事件,以使用更新的内容更新我所有客户端的浏览器。但是,对于 PokeIn 库,如果我的部分客户端没有支持 WebSocket 的浏览器(旧的..),我不确定他们是否会占用我的 IIS 工作线程之一。

选项 2 是否满足我的要求?在选项 1 中让我的异步控制器等待慢速进程是不是很糟糕?选项 1 的另一个缺点是,如果用户在请求完成之前刷新页面,一旦完成,他将不再获得作业的更新!

欢迎任何想法,建议。

谢谢

0 投票
0 回答
274 浏览

facebook - facebook是否使用彗星进行通知

我们知道,对于聊天消息,Facebook 使用长轮询技术来满足“实时”需求。

它是否使用相同的通知技术?

0 投票
1 回答
1153 浏览

php - 如何在 HTML contenteditable DIV 上反转 AJAX,使用 PHP 转到 mySQL DB

您将在下面找到指向我的 contenteditable DIV 页面的链接,标题为 ce.php:

http://stateofdebate.com/ce.php

我对这个问题的渴望是找到一个答案,以了解如何在文本更改时使用 Comet/reverse AJAX 立即为所有用户更新页面上的文本。目前,它被保存到我的 mySQL 数据库中,并且仅当其他用户刷新页面时才会更新文本。

请不要给出“使用 WebSocket”或“使用 node.js”之类的模糊答案。我已经问过一个与此类似的问题并得到了这些答案。要获得我的投票或检查,我需要完整的答案或教程链接。

我觉得这样,虽然一个带有特定代码的特定问题,如果得到彻底和正确的回答,可以帮助很多有类似问题的人。

这是我的完整代码:

CE.PHP

保存.PHP

数据库.PHP

编辑:仍在寻找答案!编辑:删除旧问题并创建新问题以试图找到可以回答这个问题的人......

0 投票
0 回答
2639 浏览

php - 反向 AJAX PHP 多用户聊天

这是情况。我有一个管理面板(多个管理员同时使用)和员工面板(多个员工同时使用)。管理员可以同时与多名员工聊天,但员工只能与管理员聊天。所有聊天都保存在数据库(mysql)中,并带有各自的“from,to,msg,time”字段,双方使用它们根据他们的活动聊天会话匹配消息。现在我正在使用一个 setInterval(function(){ $.ajax(...); },3000);返回服务器返回所有给管理员的消息却只返回请求员工的特定消息。但这不是一个实用的解决方案,因为如果它不正确,它也会过度使用我的服务器资源和太多的数据库查询。很多改进是可能的。首先将最后一条消息的时间传递给服务器,然后服务器只发回晚于该时间到达的消息。ajax 仍然每 3 秒调用一次,数据库查询也保持不变。然后我可以让它成为一个延迟 30 秒的自调用函数,如下例所示。

但是即使我使用这种技术,如何在服务器端等待,而不是等待什么?请记住,我还想减少数据库查询的数量,但我唯一需要的是在发送时间值之后收到的一堆消息。像下面这样的事情会做,但仍然要等待什么?

请帮助我解决这种情况。如何设置一个触发器,我可以在多个用户同时聊天的环境中在服务器中循环。

我已经实现了轮询技术,到目前为止它看起来不错,但由于过多的数据库查询,我仍然不太高兴。我仍然愿意接受建议。

以下是服务器代码。

以下是客户端。它简单有效,这就是我喜欢客户端的原因。

再一次,我仍然愿意接受建议/建议。

0 投票
1 回答
202 浏览

java - DWR 是否使用基于轮询或推送的概念?

虽然 DWR 被称为反向 AJAX 技术,但我想了解它是否实际上使用基于推送的概念,或者实际上是基于轮询的..

如果您可以通过简单的示例详细说明相同的内容以更好地理解该概念,那就太好了。

0 投票
0 回答
71 浏览

html - 一次数据库更新到 UI

数据库有一次更新,这是通过 Web 服务进行的。当此更新发生时,我需要立即将其反映在 UI 上。

它不是一个健谈的应用程序,这种类型的反向更新很少见。
实现它的最佳方法是什么?
我阅读了有关使用 Websockets、pusher api和一些 Realtime.co 的信息。但不确定哪一个是最新的,易于使用等。

我在 Codeigniter 上有 XAMPP 堆栈。

0 投票
1 回答
2452 浏览

java - dwr 反向 ajax 股票演示应用程序

我正在实现此处给出的 dwr 反向 ajax 示例

http://wiki.netbeans.org/CreateReverseAjaxWebAppsWithDWR

下面是代码

index.jsp 从 StocksDemo.java 获取值

索引.jsp

我的pojo课

StocksDemo.java

web.xml

dwr.xml

我在 webcontent 文件夹中添加了 dwr js engine.js 和 util.js 文件。

当我在 tomcat 和 firefox 上运行项目时。单击触发 javascript getStock() 方法的 getStocks 按钮。我收到一个会话错误弹出窗口。

而tomcat控制台中的消息是

1020033 [http-bio-8080-exec-19] 错误 org.directwebremoting.dwrp.Batch - 请求已被拒绝作为潜在的 CSRF 攻击。

谁能告诉我为什么。我错过了什么吗?

下面是在浏览器中创建的 StocksDemo.js

0 投票
1 回答
590 浏览

php - 如何在 php mysql 中实现反向 ajax 以获取数据库更新

我想在特定时间间隔或数据库更改时从 db 获取更新。这将持续影响客户端网页

0 投票
0 回答
86 浏览

java - 我可以在engine.js 中添加一个函数吗?

我们的 Web 应用程序使用反向 ajax。它每 30 秒检查一次用户的会话并生成控制台日志(请参阅下面的日志)。是否可以在打印日志之后/之前添加功能?如何?

日志

0 投票
1 回答
135 浏览

java - 使用 DWR 从 java 调用 Java 脚本不更新浏览器中的输入字段

我正在使用带有以下代码的 DWR 机制从 java 调用 java 脚本

它正在成功执行,但输入字段的背景(具有 id isTreeUpdatedButton 的元素)颜色没有更新,并且在执行上述代码时会出现“无效分配左侧”的警报。