我正在使用Phonegap构建我的iOS/Android应用程序 - 基本上是一个可以模拟我的笔记本电脑键盘上的几个按键的遥控器。 (用于控制视频播放等)。
由于它是一个网页,我有一些图像,当单击时连接到我的Java Socket服务器。我面临的问题是,每次我点击一个按钮 - 只是一次(比如暂停按钮),我在java控制台中看到多个请求被触发。
但是这仅发生在我手机上点击(触摸)时。当我尝试在我的笔记本电脑浏览器中做同样的操作时,它的行为符合预期(只有一个请求)。
我查阅了几篇文章,其中一般建议使用'unbind()'和'off()',但没有任何作用。下面是代码片段。
由于它是一个网页,我有一些图像,当单击时连接到我的Java Socket服务器。我面临的问题是,每次我点击一个按钮 - 只是一次(比如暂停按钮),我在java控制台中看到多个请求被触发。
但是这仅发生在我手机上点击(触摸)时。当我尝试在我的笔记本电脑浏览器中做同样的操作时,它的行为符合预期(只有一个请求)。
我查阅了几篇文章,其中一般建议使用'unbind()'和'off()',但没有任何作用。下面是代码片段。
$("#play").off().on('click',function(){
//alert("Play");
jQuery.ajax({
type: "GET",
async: true,
url: 'http://'+ip+':10007/function=play?',
success: function (msg)
{ },
error: function (err)
{ }
});
});
我使用了警告框来检查事件是否被触发多次。警告框只弹出一次,这意味着事件只被触发了一次。 因此,只需一次点击(触摸)=> 一个事件 => 但是会发出多个请求!
我使用以下代码来检查服务器响应:
while(true) {
Socket sock = servsock.accept();
System.out.println("Connection from: " + sock.getInetAddress());
Scanner in = new Scanner(sock.getInputStream());
PrintWriter out = new PrintWriter(sock.getOutputStream());
String request = "";
while (in.hasNext()) {
request = in.next( );
if (request.contains("function="))
{
inputLine = request.split("function=")[1];
System.out.println ("^^^^^" + inputLine);
...
当从移动设备请求时,输出在控制台中出现三次,但从我的笔记本电脑浏览器请求时只出现一次。
我不明白为什么会这样,也不确定如何防止这种情况发生。有什么建议吗?