Html 如何选择Ajax技术

Html 如何选择Ajax技术,html,ajax,Html,Ajax,我有一个项目,它有一个服务器监听端口9999。最初,客户机是一个flash程序,它使用XML与服务器通信。现在我想为它编写一个web客户端(html)。我希望在服务器端进行尽可能少的修改 我正在考虑使用纯html+ajax。我面临的问题是: 1) 我可以从客户端发送xml并等待响应吗?如果是这样的话,哪种方法是最有效的开发方式 2) 我认为所有从客户端发送的xml都嵌入到HTTP请求中,但我的服务器根本不知道HTTP。我是否需要将服务器修改为CGI程序 有什么好的框架可以让我开始吗?我不知道问题

我有一个项目,它有一个服务器监听端口9999。最初,客户机是一个flash程序,它使用XML与服务器通信。现在我想为它编写一个web客户端(html)。我希望在服务器端进行尽可能少的修改

我正在考虑使用纯html+ajax。我面临的问题是:

1) 我可以从客户端发送xml并等待响应吗?如果是这样的话,哪种方法是最有效的开发方式

2) 我认为所有从客户端发送的xml都嵌入到HTTP请求中,但我的服务器根本不知道HTTP。我是否需要将服务器修改为CGI程序


有什么好的框架可以让我开始吗?

我不知道问题2,但我知道你可以使用
$.post(url,数据)
将数据发送到服务器,或者您可以使用
$(选择器).load(带有查询字符串的url)以实现所需的结果。只需设置一个正确处理数据的页面,然后从当前具有Flash功能的页面进行get或post调用


希望这有帮助。

我不知道问题2,但我知道你可以使用
$.post(url,数据)
将数据发送到服务器,或者您可以使用
$(选择器).load(带有查询字符串的url)以实现所需的结果。只需设置一个正确处理数据的页面,然后从当前具有Flash功能的页面进行get或post调用


希望这有帮助。

如果您的服务器使用XML,您应该能够通过HTTP发送XML,没有问题。您可以使用AJAX甚至普通的POST/GET通过客户机发送此消息,然后等待响应对其进行处理

我不认为你需要改变你的服务器来做任何不同的事情


您可以编写代码来使用纯Javascript实现AJAX(XMLHttpRequests)(只需确保满足浏览器的差异)。或者,您可以使用这样的框架,这样可以使您的工作更轻松,但如果您只想进行一些AJAX调用并处理响应,那么这可能会有些过分。

如果您的服务器使用XML,您应该能够通过HTTP发送XML,没有问题。您可以使用AJAX甚至普通的POST/GET通过客户机发送此消息,然后等待响应对其进行处理

我不认为你需要改变你的服务器来做任何不同的事情

您可以编写代码来使用纯Javascript实现AJAX(XMLHttpRequests)(只需确保满足浏览器的差异)。或者,您可以使用这样的框架,这样可以使您的工作更轻松,但如果您只想进行一些AJAX调用并处理响应,那么这可能会有些过分。

1)是的,您必须发送一个AJAX请求并等待响应。我建议您为此研究JQuery。编写自己的Ajax基础知识是一个难题。如果您问我的话,使用普通的请求/响应(非ajax)是不会成功的,因为您返回的是XML。但没关系,Ajax会做得很好

2) 您的web客户端只与HTTP通信。您需要修改服务器(或在其前面放置一些东西),以接受HTTP请求并发送XML作为响应。HTTP是一个非常简单的协议,因此如果您真的需要,您可能可以自己执行此操作(我做过一次)。

1)是的,您必须发送ajax请求并等待响应。我建议您为此研究JQuery。编写自己的Ajax基础知识是一个难题。如果您问我的话,使用普通的请求/响应(非ajax)是不会成功的,因为您返回的是XML。但没关系,Ajax会做得很好


2) 您的web客户端只与HTTP通信。您需要修改服务器(或在其前面放置一些东西),以接受HTTP请求并发送XML作为响应。HTTP是一个非常简单的协议,所以如果你真的需要,你可以自己做(我做过一次)。

我在这里看到很多回答提到“发送ajax请求并等待响应”。Ajax中的A代表异步,这意味着不发送请求而等待响应。您只需发送它,就可以了,响应可以在100毫秒、3秒钟内或明天或永远不会到来。如果您需要等待某个消息,直到它出现,以继续您的计算或其他操作,那么您需要执行一个正常的HTTP POST或GET请求

1) 是的,您可以从JavaScript发送XML(您可以发送任何内容),您可以按自己喜欢的方式接收和处理XML,最好使用jQuery来实现这一点,jQuery使其更简单,并为您提供跨浏览器支持

2) 如果您的服务器根本不知道HTTP,如何将其嵌入HTTP请求中


如果你回答“你想做什么?为什么”,我们可以给出更好更详细的答案?您当前的设置到底是什么样子的,9999端口的服务器是什么?

我在这里看到很多回答提到“发送ajax请求并等待响应”。Ajax中的A代表异步,这意味着不发送请求而等待响应。您只需发送它,就可以了,响应可以在100毫秒、3秒钟内或明天或永远不会到来。如果您需要等待某个消息,直到它出现,以继续您的计算或其他操作,那么您需要执行一个正常的HTTP POST或GET请求

1) 是的,您可以从JavaScript发送XML(您可以发送任何内容),您可以按自己喜欢的方式接收和处理XML,最好使用jQuery来实现这一点,jQuery使其更简单,并为您提供跨浏览器支持

2) 如果您的服务器根本不知道HTTP,如何将其嵌入HTTP请求中


如果你回答“你想做什么?为什么”,我们可以给出更好更详细的答案?您当前的设置到底是什么样子的,端口9999的服务器是什么?

因为不清楚您的服务器是什么类型的(可能是基于java或C/C++套接字的),如果是真的,您可以将其调整为使用HTTP协议,然后您可以在客户端使用javascript代码,通过JSON(您可以
function doAJAXRequest(url, t_method, v_parameters, p_onsuccessfunction, p_onloadingfunction) {
    url = url + "?" + "randNum" + getRandom();
    var objAjax = new Ajax.Request( url, { method: t_method, parameters: v_parameters,  onLoading: p_onloadingfunction, 
                                           onSuccess: p_onsuccessfunction, onFailure: onfailureAjx } );
}
function setAJAXResultInElement(objRequest, elementId){ $(elementId).innerHTML = objRequest.responseText; }
function onloadingAjx(){ /*...*/ }
function onsuccessAjx(){ /*...*/ }
function onfailureAjx(objRequest) { setAJAXResultInElement(objRequest, "div_main_result"); }