php - base64_encode 的问题,它减慢了我的网站 php
问题描述
我已经使用带有 base64_encode 的图像 src 加密,但是该代码使我的网站变慢,但是当我放置此代码时,它会使我的网站变慢。所以有人有任何解决方案可以通过这种类型的加密使我的网站更快。我把我的代码放在下面。
<?php
while ($user = mysqli_fetch_array($queryResult, MYSQLI_ASSOC)){
if ($user["main_picture"]){
$imageData = base64_encode(file_get_contents($user["main_picture"]));
$result .= '<td><div class="user_image_container"><img src="data:image/jpeg;base64,'.$imageData.'"></img></div></td>';
}
else{
$result .= '<td></td>';
}
?>
任何人都可以帮助我。
解决方案
当您使用此代码加载页面时,PHP 解释器必须先完成通过网络获取图像,然后才能解释页面的其余部分,这会增加时间。
如果您要在没有此代码的情况下加载页面并使用指向图像的直接链接,则页面本身会加载得更快,然后浏览器会加载图像。
潜在的解决方法:使用数据库存储映射到图像的一次性令牌。当用户加载页面时,生成一个令牌(这将比拉取图像更快)并让图像 src 指向您设置的图像服务端点,该端点检查令牌,将其标记为已使用,获取文件并然后发送图像。如果您希望它是真正的一次性使用,您可能会遇到缓存问题,但它至少隐藏了图像的来源。
推荐阅读
- java - 在 MongoDB Java 中运行脚本命令/文件
- sql-server - 如何使用两个键在表上定义全文搜索?
- c# - 如何在 WPF 中计算比例因子 (%) 以使可滚动控件的内容完全可见?
- python - 删除二维数组中的特定值 - Numpy
- qt - 如何以亚像素精度翻译/裁剪 QImage?
- vba - 如何检查特定列中的过滤器然后过滤/取消过滤它?
- c# - 在没有请求的asp.net webform自定义类中制作相对url
- mysql - 如何克服 MySQL 中的“结果包含多于一行”
- java - 从 1 个镜头中获取枚举字符串值
- google-apps-script - ClearSheet 功能不适用于电子表格的所有选项卡