2012-02-21 150 views
-1

我对异步调用有一个很大的误解,我找不到合理的答案(我很抱歉,如果这是一个愚蠢的问题,但似乎我不明白这一点)网络开发中的异步调用

有什么办法在Web开发中调用函数异步没有Javascript?

当我的意思是异步时,我指的是调用一个函数,在页面加载时以及在完成后向用户显示结果而不让他等待函数处理(并显示空白页)。

插座是否可行?

语言:PHP,JAVA,ASP.NET,PYTHON

感谢。

+0

您可以将Java小程序或Flash或Silverlight嵌入到您的页面中以实现类似的效果,但结果不如JS恕我直言的吸引力。 – Mchl 2012-02-21 21:06:43

+0

例如,如果我想调用一个php/java函数来完成繁重的工作,我希望能够呈现整个页面,并且当函数结束处理以向用户显示结果(以div或跨度)时,或者向用户显示创建的输出(如php中的popen) – pufos 2012-02-21 21:10:01

+0

为什么你不能使用JS?现代异步Web开发_screams_ JS。 – nickb 2012-02-21 21:14:43

回答

1

那么,在将数据发送到客户端之前,服务器没有理由等待所有动态内容可用。所以它可以发送一些数据(例如“请稍候” - 消息),然后执行繁重的处理,然后发送响应,全部作为对一个http请求的回复。然而,这意味着浏览器会一直显示加载栏,直到收到最终消息。

+0

是的,但没有人想看到加载5 - 8秒 – pufos 2012-02-21 21:14:38

+0

我认为,也许Java(小服务程序或JSP)可以操纵DOM像Javascript,因为Java是多线程,并行并可以具有本地异步调用。 PHP是单线程,目前它不实现异步调用 – pufos 2012-02-21 21:18:54

+0

问题不在于服务器端,而在客户端。浏览器不能做台异步调用,以检查是否有新的内容,而无需使用JavaScript或重新加载页面(或者页面上的框) – Simon 2012-02-21 21:23:43

1

并非没有丑陋的20世纪黑客,例如每隔几秒不断重新加载页面,直到结果可用。

+0

因此,如果没有使用Javascript,那么将使网络应用程序异步无法实现? (首页百页 - 显示结果,因为它们处理) – pufos 2012-02-21 21:11:40

0

根据您发布的问题和意见。由服务器呈现数据的方式有很多种。这完全取决于你如何构建你的应用程序。回想起来,Javascript提供了最优雅的解决方案。

一种方法是使用Meta-Refresh标签不断刷新页面并在内容可用时显示内容。

另一种方法是在网页中添加iFrame。 iFrame的URL将是一个负责处理的页面。这样,页面的加载就不会等待iFrame加载。

+0

噢噢噢,我忘了完全地约I帧,因为我再也不会使用它们(因为MVC框架)。但我的问题是:Java知道如何调用异步任务并在后台执行任何操作,并在结果可用时显示它。为什么需要JavaScript(仅仅是因为涉及浏览器)? – pufos 2012-02-21 21:57:42

+0

你要记住,HTTP是一个无状态的协议,当你发送一个GET请求到一个URL,你得到响应。之后,服务器无法回电并说,我有关于您的查询的更多信息。所有这些黑客为客户端提供了一种方法,使其保持与服务器的连接处于打开状态,直到相应的响应可用。 – alykhalid 2012-02-21 22:27:00

0

当使用我的Android手机时,通常会收到要求关闭我甚至不使用的程序的弹出式窗口,而Facebook则是常见的模拟程序。有几个。我不明白它们在不使用它们时的运行方式

+0

许多应用程序在后台运行。他们运行,以便他们可以更新信息,或检查某些东西。这是一个非常普遍的现象。 – 2014-06-12 05:19:04