在JavaScript中是否有办法获取链接文件的内容而不进行第二次GET请求?也就是说,如果我有
<link rel="foo" href="bar.txt">
浏览器应自动下载bar.txt
。有没有办法在不再获取内容的情况下阅读其内容(即通过jQuery的$.get
或类似内容)?
我可以使用第二个GET请求,并且如评论中所提到的那样可能不会有性能损失,但这个问题主要是一个思想实验:看起来它很漂亮标准功能,但越来越多的事情指向这是不可能的。有原因吗?
答案 0 :(得分:1)
如果标签绝对没有其他目的而不是源的占位符,那么目标是防止第一次获取而不是第二次;)通过使用另一个属性,您可以避免默认行为。
<link data-src='file.txt' />
'data -...'是您现在可以使用的有效HTML5属性,但如果声明了较旧的doctype但仍然有效,则html将无效。
接下来使用jQuery时:
$('link[data-src]').each(function(){
var self = $(this)
, src = self.attr('data-src');
$.get(src, function(fileContent){
// do stuff with fileContent
})
});
显然,当使用'data -...'时,任何元素都会使用link元素,我自己使用这种技术在基于组件的体系结构中添加数据,将资源和元信息延迟绑定到组件而不影响默认行为/再现。