无法清除临时存储

无法清除临时存储:确定某些文件在Web应用程序中访问不安全,或者调用的文件资源太多。 引发SecurityError

我在控制台中得到这个错误。 我有一个脚本名script.js这使得Ajax调用来检索数据从PHP。

任何想法为什么?

这是我的jQuery脚本

$(document).ready(function() { var loading = false; var docHeight = $(window).height(); $('.timeline').css({minHeight: docHeight}); function get_tl_post() { if (loading==false) { loading = true; $.ajax({ type:"POST", url:"timeline.php", data:"data=instagram", beforeSend:function(){ $('.loader').fadeIn("slow"); }, complete:function(){ loading = false; $('.loader').fadeOut("slow"); }, success:function(data) { if(data=="error") { get_tl_post(); } $(data).hide().appendTo(".timeline").fadeIn(1000); } }); } } $(window).scroll(function(){ if ($(window).scrollTop() == $(document).height() - $(window).height()) { get_tl_post(); } }); }); 

这是由于您的资源的networking映射。

换句话说,你可能已经在你的chrome开发工具中添加了workspace文件夹 现在,当您尝试对某些文件进行更改时,会将请求发送到文件系统。 这工作很好一段时间。 但是,在某些情况下,您可以删除networking映射。

然后,当您尝试在浏览器上打开该网页时,它可能会或可能不会要求重新映射networking资源,并仍尝试更新文件系统。 那是当你得到这个错误。 你的脚本没有错。

现在唯一的解决scheme可能是删除caching,然后重新启动系统。 如果问题仍然存在,您可以简单地重新安装铬,这应该是固定的。

而且,有时networking映射也会导致其他一些问题。 例如,使CSS文件大小达到75MB或更高。 所以在玩networking映射时必须要小心。

可选的,如果你在Mac …甚至在Windows上,并有sh命令可用。

 sudo find / -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' 

在你的terminal中find这个超过50MB的罪魁祸首个人文件。 你可以删除它们。

注意:上面的命令是什么,它会find所有超过50MB的单个文件,然后逐个打印到terminal上。

如果我猜测我会说你的timeline.php脚本总是返回“错误”,所以你recursion太多的调用和浏览器阻止他们。

尝试消除recursion函数调用,看看是否可以解决这个问题。

删除以下3行,然后重试:

 if (data == "error") { get_tl_post(); } 

如果您的ajax调用由于某种原因失败,则可能导致get_tl_post();recursion调用过多get_tl_post();

我build议你使用error属性进行error handling,并避免recursion调用你的函数的情况。 一个想法可能是设置一个像“如果请求失败/数据有错误,等待一段时间,然后重试如果X重试,然后显示错误代码并停止请求”的策略。

下面是一个未经testing的代码示例,为了向您展示这个想法:

 var attempts = 0; $.ajax({ //Rest of properties success: function(data) { if(data == "error") { if(attempts < 3) { setTimeout(function(){ get_tl_post(); ++attempts; }, 2000); } else { //output failure here. } } //Rest of code.... } });