Javascript 在MySQL与HTTP GET中存储图像路径<;img src=”等&引用;onError="&引用&燃气轮机;

Javascript 在MySQL与HTTP GET中存储图像路径<;img src=”等&引用;onError="&引用&燃气轮机;,javascript,html,mysql,database,Javascript,Html,Mysql,Database,我正在设计一个列表站点,其中每个用户都可以上载多个图像(使用此字符串作为图像的源url,以避免向服务器发出请求(以及404错误响应) 使用此字符串作为图像的源url,以避免向服务器发出请求(以及404错误响应) 将路径(而不是图像本身)存储在数据库中是一个好方法 我真的不知道您当前是如何存储图像的,但这样的表是有意义的: +---------+---------+-------------+---------------+ |image_id | user_id | image_path |

我正在设计一个列表站点,其中每个用户都可以上载多个图像(使用此字符串作为图像的源url,以避免向服务器发出请求(以及404错误响应)


使用此字符串作为图像的源url,以避免向服务器发出请求(以及404错误响应)

将路径(而不是图像本身)存储在数据库中是一个好方法

我真的不知道您当前是如何存储图像的,但这样的表是有意义的:

+---------+---------+-------------+---------------+ |image_id | user_id | image_path | date_uploaded | +-------------------------------------------------+ | 1 | 1 | /img/xxx.png| 31|07|2016 | | 2 | 1 | /img/yyy.png| 31|07|2016 | | 3 | 5 | /img/zzz.png| 31|07|2016 | +---------+---------+-----------------------------+ 希望这有帮助:)

将路径(而不是图像本身)存储在数据库中是一个好方法

我真的不知道您当前是如何存储图像的,但这样的表是有意义的:

+---------+---------+-------------+---------------+ |image_id | user_id | image_path | date_uploaded | +-------------------------------------------------+ | 1 | 1 | /img/xxx.png| 31|07|2016 | | 2 | 1 | /img/yyy.png| 31|07|2016 | | 3 | 5 | /img/zzz.png| 31|07|2016 | +---------+---------+-----------------------------+
希望有帮助:)

不要默认设置src并使用OnError函数生成默认图像路径,您应该为任何没有src属性的img标记添加一些默认css。然后为实际无法加载的图像保留OnError。这最终将请求总数减少到最低限度

img:not([src]){
//默认图像CSS

}

不要在默认情况下设置src并使用OnError使用函数生成默认图像路径,而应该为任何没有src属性的img标记添加一些默认css。然后为实际无法加载的图像保留OnError。这最终将请求总数减少到最低限度

img:not([src]){
//默认图像CSS


}

能否提供一个示例图像链接?删除
onError
属性一分钟,然后张贴
img
标记在数据库中存储文件名/文件路径对正确索引的表的影响可以忽略不计。我开发的网站包含数亿张照片,照片的每条路径都存储在
photos
表中,并带有返回主表ID的外键。查询会触发,照片文件路径会被检索,所有这些都以毫秒为单位。你能提供一个示例图像链接吗?删除
onError
属性一分钟,然后张贴
img
标记在数据库中存储文件名/文件路径对正确索引的表的影响可以忽略不计。我开发的网站拥有数亿张照片,照片的每条路径都存储在
photos
表中,并有一个外键返回到主表的ID。查询启动,照片文件路径被检索,所有这些都以毫秒为单位。感谢Christopher的回复。我希望避免加入,因为可能会有数百万用户启动查询,每个用户每秒至少会有5个AJAX请求。所以,我希望表尽可能精简,并且它也有空间列,为什么每秒需要5个ajax请求?另外,您可以通过在
user
中的
user\u id
字段上创建索引来显著提高性能。好吧,我不需要5,但最终用户可能会启动,因为这是基于地图的搜索,当用户移动地图时,会启动AJAX,想象一下移动google地图的速度/频率,是的,我确实有索引:主键(
id
)、空间索引
location\u INDEX
location
)也许您也可以进行一些预取,然后?不要只加载地图当前视口中的图像,而是在视口帧的几倍范围内加载所有图像。只是一些随机的thoughts@surz-真的会有吗“数百万用户"或者这只是一厢情愿的想法?如果你希望在任何给定的时间网站上有数百万用户,那么你最好开始寻找其他方法来服务你的资源,例如MongoDB/Redis、Elasticsearch、CDN等。但是如果不是,不要太担心JOIN。如果索引正确,它们的速度会比眨眼之间快。感谢Christopher的回复。我希望避免加入,因为可能会有数百万用户触发查询,每个用户每秒至少会有5个AJAX请求。因此,我希望尽可能精简该表,并且它也有空间列。为什么您每秒需要5个AJAX请求?此外,您还可以显著提高通过在
user
中的
user\u id
字段上创建索引来实现性能。我不需要5,但最终用户可能会启动,因为这是一个基于地图的搜索,当用户移动地图时,会触发AJAX,所以想象一下移动google地图的速度/频率,是的,我确实有索引:主键(
id
),空间索引
location\u INDEX
location
)也许您还可以进行一些预取,然后?不要只加载地图当前视口中的图像,而是在视口帧的几倍范围内加载所有图像。只是一些随机的thoughts@surz-真的会有“数百万用户”吗或者这只是一厢情愿的想法?如果你希望在任何给定的时间网站上有数百万用户,那么你最好开始寻找其他方法来服务你的资源,例如MongoDB/Redis、Elasticsearch、CDN等。但是如果不是,不要太担心JOIN。如果索引正确,它们的速度会比眨眼之间快.谢谢你,尼克,但是我应该在哪里添加路径,我的意思是在我得到的路径中,echo base64\u encode(file\u get\u contents()),但这对我来说不起作用,因为我正在使用JavaScript填充图像。我的代码是最小的空白图像。你可以这样做,
,稍后当你需要显示真实图像时,从
数据路径
属性中获取一个值,创建url并将其放入
src
属性,但当我放入src属性中的e url,如果url不可用。我认为这只是延迟了浏览器控制台的日志记录。请为我澄清为什么需要将错误的url放入src?谢谢你,尼克,但是我应该在哪里添加路径,我的意思是,我得到了,echo base64_encode(fil +---------+---------+-------------+---------------+ |image_id | user_id | image_path | date_uploaded | +-------------------------------------------------+ | 1 | 1 | /img/xxx.png| 31|07|2016 | | 2 | 1 | /img/yyy.png| 31|07|2016 | | 3 | 5 | /img/zzz.png| 31|07|2016 | +---------+---------+-----------------------------+
SELECT image_path FROM images
JOIN users ON users.user_id = images.user_id