好的,我将在免责声明的前提下,我没有尝试过的代码,主要是因为我找不到任何东西或找出可能在这种情况下起作用的任何东西。温柔的downvotes lol
我有一个使用Cropit图像裁剪插件的应用程序。这会将图像以Base64格式传回我的控制器,在此处理并保存。问题是一些图像保存很长,6-20秒。用户可能认为该应用程序已挂断的时间足够长。
所以我的客户认为进度条会很好,我同意它比旋转器更好或只是让用户等待。问题是我不知道如何获得保存的进度,或者我甚至可以。如果它是一个迭代过程,那将很容易,但因为这只是一个事件,据我所知,并没有返回任何进展,我对如何做到这一点感到困惑。
这是运行了这么长时间的代码(ps关于如何加速这个过程的任何提示也是受欢迎的!)该脚本执行一些调整大小和其他数据库功能,但我做了一些基准测试并缩小了它到实际的保存功能。对于记录,此代码的上一次迭代做了一些不同的事情并使用了file_put_contents。时间结果完全相同。
if(imagejpeg($image_p,$new_dir.$postData['page_image'],$compression)) {
$return['updated'] = "updated";
$return['image_src'] = 'assets/dist/img/user_images/'.$page.'/'.$postData['page_image'];
$return['image_name'] = $postData['page_image'];
$this->clean_up_images($page);
} else {
$return['updated'] = "error";
}
奇怪(至少对我而言)无论实际文件大小如何,复杂的图像都需要更长时间才能保存。因此,例如一张3mb的信头照片需要200-300毫秒,一群人只有1.7mb的照片需要5-6秒。
帮助?