javascript - URI 太长时 Chrome 崩溃

标签 javascript html

我正在为我的 HTML5 游戏制作导出功能,我目前的保存方法是对游戏数据进行粗略序列化,然后:

// this is Javascript
var gameData = "abc"; // this is actually a HUGE string of over 2MB
try
{
    document.location = "data:text/octet-stream,"+encodeURIComponent(JSON.stringify(gameData));
}
catch(e)
{
    console.log(e);
}

发件人:Using HTML5/Javascript to generate and save a file

我不介意我不能将它用于大字符串这一事实,但我希望它生成一个警告,告知该方法不起作用,不幸的是 Chrome (16) 崩溃而没有捕捉到它异常。

有没有更好的方法来实现这种导出,对我来说重要的是让它在本地工作。 FileAPI会是一个更好的解决方案,但在本地不起作用。

最佳答案

据我所知,客户端不可能;但是在 Chrome 中可以通过这种方式保存 1.99MB 的文件;也许您应该尝试稍微压缩/优化您的游戏数据。一种方法是使用 JSZip .

为了检查当前浏览器是否为 Google Chrome 并且该方法不适用于长字符串,您可以使用如下内容:

if(gameData.length > 1999999 && window.chrome){
    alert("Sorry, this export method does not work in Google Chrome")
    return; 
}

关于javascript - URI 太长时 Chrome 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8748362/

相关文章:

html - HTML 中的表格应该是坏的吗?为什么有这么多关于无表 CSS 的讨论?

javascript - 如何将数组的值附加到 Javascript 中的 SQL 语句

python - BeautifulSoup 响应错误

javascript - 从 dropzone 的 ajax 响应中获取响应文本

javascript - jquery 规模失去位置

php - 使 HTML 表格显示在一行中

javascript - 如何使用 javascript 禁用 ctrl + a ?

javascript - 迭代选择的 DOM 元素

javascript - 无法获得嵌套的 promise 将值返回到下一个 promise 链

javascript - 如何检查 textarea 与 CKEDITOR?