需要在后台执行代码
Need to execute a code in background
我已经做了一个代码从iphone到PHP服务器接收图像,我需要调整这些图像的大小并移动到4个文件夹。
只有这样json响应才会给iphone。但是这很费时间。要求:
- 我想移动一个文件到文件夹"folder1",然后想给json响应。
在给出json响应后,应该从这个"folder1"开始调整大小。
如何在后台运行这个调整大小的过程。
下面是我的代码: http://pastebin.com/qAcT1yi9你可以通过Linux命令发送php脚本在后台运行。
的例子:
// using backticks to execute the Linux command but there are
// other alternatives
$cmd = `php runScriptInBackground.php &`;
echo $cmd;
首先发送/上传图像并发送响应,而不进行大小调整操作。
然后,如果上传成功,让浏览器发出另一个请求并进行大小调整。当此操作成功时,发送消息' resizing successful '返回。
这个问题的一个常见解决方案是在遇到特定事件时实现加载/处理消息。然后-仍然显示-操作将继续在后台加载,结果页面将在完成后最终显示。
虽然用户必须等待,但我更喜欢在实际结果未知时显示结果消息。不幸的是,我不确定如何在iphone开发中完成
如果你的建筑在objective c那么你可能只是调整大小复制和调整它的大小发送到你的PHP然后你可以显示一个旋转器和json结果返回给用户如果是一个错误,用户仍然会有调整大小的图像再次尝试…我的另一个想法是使用推送通知。我不知道代码是什么样子的但是可以考虑一下
你需要一些async javascript或iframe在你的页面张贴图像到你的服务器和提供反馈给用户。
这意味着"主"页不会改变,但可以向用户提供一些视觉信息。
你可以显示一个动画gif加载器或使用JS setInterval给用户的感觉,事情正在前进,为什么等待服务器的响应。
如果处理被分成更多的1部分,在每一步之后,服务器可以用HTML页面和重定向响应:这甚至可以在没有JS的IFRAME中工作。每个"页面"将执行多一个步骤。但是,如果用户在完成所有操作之前关闭浏览器,您将以未完成的任务结束。
数据库、真正的后台处理和客户端JS轮询是一个更健壮的选择。
一个完整的答案会很长,需要更多的细节,你的设置(apache CGI PHP?还是mod_php ?你是在使用MVC模型或框架,还是在写一个面向页面的网站?)
如果我必须写一个完整的答案,我会忘记PHP,使用Python和芹菜http://celeryproject.org/;-)
PS。我刚发现一些相关的问题已经存在了:
- PHP后台进程在PHP中执行异步shell
您可以分两次完成,首先发送de文件并保存在第一个服务器上,之后当用户请求时,您生成必要的部分。
您将把费用从文件发送者传递给来自该文件的第一个请求。
- 有没有一种方法可以通过只引用JavaScript来执行代码
- jQuery在类更改时执行代码
- 如果此代码运行,请执行代码
- Javascript等待ajax成功后再执行代码
- 如何在onclick事件执行代码时在ImageButton上设置加载gif
- php,如果我点击按钮程序重新加载页面,并且从不继续执行代码
- Javascript渲染.如何编写Javascript;t在函数调用结束之前继续执行代码
- 无法让 jQuery 以正确的顺序执行代码
- ReactJS:在带有 ajax 调用的 .map() 语句完成后执行代码
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 自执行代码中的“this”
- 为什么Javascript不按顺序执行代码
- 如何在javascript中连续执行代码
- 加载所有图像后执行代码
- 按下多个按钮时执行代码
- 如何在检索到数据后使用drawCallback执行代码
- 等待promise解析后再执行代码
- jQuery没有为具有新id的新元素执行代码
- 如何在客户端Collection增长时立即反应性地执行代码
- 如何将变量表达式转换为可执行代码(而不是替换值)