如果我尝试加载一堆 404 链接是否有害?
Is it harmful if I try to load a bunch of 404'd links?
我正在为公司网站开发图像旋转插件。问题是,我希望图像替换过程尽可能简单明了,因此我设置了一堆文字字符串,我的异步加载过程将尝试加载这些字符串以显示图像。
如您所想,图像将存储在横幅文件夹中,用户可以在其中存储图像:
img1.jpg
img2.png
img3.jpg
img4.jpg
img5.png
所以我的 JS 将循环调用 $.ajax 10 次,它将尝试首先以 png 格式访问图像 (img1 - img10),然后以 jpg 格式访问。
for(var i = 1; i<= 10; i++) {
$.ajax({
url: '/banner/img' + i + '.png',
...
success: ...
error: function () {
$.ajax({url:'/banner/img' + i + '.jpg', ... });
}
});
}
这当然会生成一大堆 404。这种方法有缺点吗(当然,除了 404 之外,它会 return)?有更好的方法吗?
提前致谢!!
无害,但绝对不是首选。假设您有权访问 PHP,我会对 jpg 和 png 文件名使用单独的计数器,因此您同时拥有 1.jpg
和 1.png
是不同的图像,然后使用目录迭代器获取加载网站时的 png 和 jpg 文件总数。
根据您想花费多少工作将 php 生成的数据放入 javascript,最便宜的修复方法是在 javascript 之前的某处插入 <script>var nJPG=4; var nPNG=2;</script>
html.
就像Brad 说的,除了浪费带宽,我几乎想不出什么。但我相信您正在尝试检测是否提供了 .png 格式,如果不可用,请选择 jpg 格式。您可以使用 'type:head' 而不是 $.ajax 来节省一些带宽,如下所示,
for(var i = 1; i<= 10; i++) {
$.ajax({
url: '/banner/img' + i + '.png',
type:'HEAD',
error:
function(){
$.ajax({url:'/banner/img' + i + '.png', ... });
},
success:
function(){
$.ajax({url:'/banner/img' + i + '.jpg', ... });
}
});
}
即使您不能 运行 服务器端代码,您仍然可以使用 tripflag 的建议,即为每种支持的图像类型创建一个单独的列表。这样,您只会为每种支持的图像类型获得一个 404,而不是为您猜错的每个图像获得一个 404。
我正在为公司网站开发图像旋转插件。问题是,我希望图像替换过程尽可能简单明了,因此我设置了一堆文字字符串,我的异步加载过程将尝试加载这些字符串以显示图像。
如您所想,图像将存储在横幅文件夹中,用户可以在其中存储图像:
img1.jpg
img2.png
img3.jpg
img4.jpg
img5.png
所以我的 JS 将循环调用 $.ajax 10 次,它将尝试首先以 png 格式访问图像 (img1 - img10),然后以 jpg 格式访问。
for(var i = 1; i<= 10; i++) {
$.ajax({
url: '/banner/img' + i + '.png',
...
success: ...
error: function () {
$.ajax({url:'/banner/img' + i + '.jpg', ... });
}
});
}
这当然会生成一大堆 404。这种方法有缺点吗(当然,除了 404 之外,它会 return)?有更好的方法吗?
提前致谢!!
无害,但绝对不是首选。假设您有权访问 PHP,我会对 jpg 和 png 文件名使用单独的计数器,因此您同时拥有 1.jpg
和 1.png
是不同的图像,然后使用目录迭代器获取加载网站时的 png 和 jpg 文件总数。
根据您想花费多少工作将 php 生成的数据放入 javascript,最便宜的修复方法是在 javascript 之前的某处插入 <script>var nJPG=4; var nPNG=2;</script>
html.
就像Brad 说的,除了浪费带宽,我几乎想不出什么。但我相信您正在尝试检测是否提供了 .png 格式,如果不可用,请选择 jpg 格式。您可以使用 'type:head' 而不是 $.ajax 来节省一些带宽,如下所示,
for(var i = 1; i<= 10; i++) {
$.ajax({
url: '/banner/img' + i + '.png',
type:'HEAD',
error:
function(){
$.ajax({url:'/banner/img' + i + '.png', ... });
},
success:
function(){
$.ajax({url:'/banner/img' + i + '.jpg', ... });
}
});
}
即使您不能 运行 服务器端代码,您仍然可以使用 tripflag 的建议,即为每种支持的图像类型创建一个单独的列表。这样,您只会为每种支持的图像类型获得一个 404,而不是为您猜错的每个图像获得一个 404。