Я использую флэш-веб-камеру, чтобы сделать снимок. Он отлично работает и возвращает URL через POST.
Я кодирую в PHP и хотел бы отображать данные POST после его получения, проблема в том, что я не перегружаю страницу.
Я огляделся, и я не уверен, что динамически загружаю этот массив данных.
Где я должен искать? JQuery?
Ах, выдумал. У меня есть встроенная функция обратного вызова, поэтому мне просто нужно добавить данные оттуда!
jQuery не может читать какие-либо данные запроса, кроме того, что отображается в URL (GET). Вам нужно будет использовать PHP (или какой-либо другой серверный язык) для обработки ответа, созданного приложением FLASH.
Из-за того, что вы используете Flash для процесса, вы в какой-то степени небезопасны, потому что, если приложение Flash не имеет какого-либо уведомления о событии JavaScript «PhotoUploaded», ваша страница не будет уведомлена о том, что Flash только что отправил фотографию на ваш сервер, который необходимо восстановить и вставить. Если вы можете изменить приложение Flash для создания внешнего события JavaScript, вы можете продолжить его, как заметил Фрэнки в своем ответе; в противном случае, если модификация приложения Flash не является вариантом, тогда другое решение будет заключаться в том, чтобы ваша страница отправляла запрос на сервер так часто (возможно, через 5-10 секунд), чтобы проверить, есть ли для него фотография показ.
Самый простой способ настроить опрос с вашим сервером таким образом – убедиться, что каждая загрузка фотографий из Flash имеет уникальный, заранее определенный идентификатор, который ваша страница знает при начальной загрузке. Затем вы просто пинговали свой сервер каждые несколько секунд с помощью запроса AJAX и передавали ему уникальный идентификатор, чтобы найти правильное изображение, если оно существует.
Основной пример:
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 });
Как это (flex code):
// 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); }