2014-03-04 35 views
1

我正在创建一个客户端浏览器界面,该界面将使用字典Web服务Glosbe API。用户应该能够在输入组件中输入一个词或一个词组并提交它,而无需重新加载页面。返回的数据需要以可用格式显示在页面上,以便他们能够查找和读取含义。使用JS和HTML使用Web服务

我试图通过Netbeans创建一个Web服务,但我不确定这是否是正确的方法。这与创建HTML页面并使用javascript调用api for Glosbe一样简单吗?

任何帮助将不胜感激。

回答

1

您可以使用JavaScript中的XMLHTTPRequest来轮询Web服务。 XHR对象非常适合允许您向页面发出请求或提交表单而无需刷新页面。请求发出后,可以异步完成,以便页面可以继续处理其他事件,然后处理响应并更新HTML。谷歌上有大量的资源可以指导你实施一个XHR对象和适当的错误处理以及示例代码。只要返回的数据以可用的格式显示,当响应返回时,这将需要由JS完成。您可以解析所需数据的响应,并通过JS构建适当的HTML元素来更新您的UI。

HTML
< INPUT TYPE = '文本' ID = '字' >
<输入类型= '布通' 的onclick = '的sendMessage()' >

JS

function sendMessage() 
{ 
var XHRrequest=new XMLHttpRequest(); 
XHRrequest.onabort = function() { 
}; 
XHRrequest.onloadend = function (evt) { 
}; 
XHRrequest.onreadystatechange = function() { 
    if (XHRrequest.readyState == 4 && XHRrequest.status == 200) { 
    //parse XHRrequest.responseText for response and build object 
    //this is where you update your UI with an HTML element 
    } 
    else if (XHRrequest.readyState == 4 && XHRrequest.status!=0) { 
    console.log("Error: returned status code " + XHRrequest.status + " " + XHRrequest.statusText + "\r\n" + XHRrequest.responseText); 
    //error handling for failed response 
    } 
}; 
XHRrequest.ontimeout = function() { 
    alert("Error: event timed out"); 
}; 
XHRrequest.open("POST", WEBSERVICE_URL_HERE, true); 
XHRrequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
XHRrequest.send("word="+document.getElementById('word').value); \\request data goes here 
} 
+0

这将允许用户在HTML页面上输入一个单词,并且会请求来自Glosbe Web服务的回复? – Spencer

+0

因此,您需要设置一个供用户输入的输入框,可以使用onkeypress事件来侦听输入或按钮,并使用onclick事件来初始化XHR对象。 XHR对象会提出请求,当它完成时,您将解析该信息并在JS中创建一个HTML元素,并从请求中返回信息,以随意更新UI。 –

+0

您可能会向我展示这样的代码示例吗?谢谢。 – Spencer