我正在使用闪光网络摄像头拍照。它工作得很好,并通过POST吐出一个URL。
我正在使用PHP进行编码,并希望在收到后显示此POST数据,问题是我不会重新加载页面。
我环顾四周,我不确定是否动态加载这些数据。
我应该在哪儿看? jQuery的?
啊,想出来了。我有Flash的内置回调函数,所以我只需要从那里追加数据!答案 0 :(得分:0)
像这样(弹性代码):
// attach a function to the completeHandler
private function completeHandler(evt:Event):void {
javascriptComplete();
}
// declare the function that will call the javascript function
private function javascriptComplete():void {
var javascriptFunction:String = "galeryUploadComplete("+Application.application.parameters.opt+")";
ExternalInterface.call(javascriptFunction);
}
答案 1 :(得分:0)
jQuery无法读取除URL(GET)中显示的任何类型的请求数据。您将需要使用PHP(或其他一些服务器端语言)来处理FLash应用程序创建的响应。
由于您正在使用Flash进行处理,因此除非Flash应用程序具有某种JavaScript“PhotoUploaded”事件通知,否则您的页面将不会被通知Flash将图片提交到您的服务器,需要检索和插入。如果您可以修改Flash应用程序以创建外部JavaScript事件,那么您可以按照Frankie在其答案中描述的那样继续操作;否则,如果修改Flash应用程序不是一个选项,那么另一个解决方案是让你的页面每隔一段时间向服务器发送一个请求(也许5-10秒左右),检查是否有照片给它显示。
以这种方式设置与服务器轮询的最简单方法是确保从Flash上传的每张照片都有一个唯一的预定标识符,您的页面在初始加载时就知道该标识符。然后,您可以使用AJAX请求每隔几秒钟对服务器执行一次ping操作,并将其传递给唯一标识符,以便在存在时找到正确的图像。
基本示例:
function GetPhoto() {
$.get('/getphoto.php?ID=1541XJ55A6', function(response) {
if(response.ImageUrl !== "") {
$(".profile-image").attr("src", response.ImageUrl);
if(getPhotoTimer !== undefined) {
clearInterval(getPhotoTimer);
}
}
});
}
$(document).ready(function() {
var getPhotoTimer = setInterval("GetPhoto()", 10000); // every 10 seconds
});