2017-04-18 155 views
0

在网页中,我有一个html5画布,他需要很多时间来初始化,一旦准备就绪,我想避免刷新它。目前在页面刷新时,画布是重新加载的形式,引入漫长的等待时间。如何避免html5画布在页面刷新时刷新

有没有一种方法,即使是一种解决方法(“非文档化的画布属性或保存到本地存储技巧”),以避免这种情况?

+0

如果它只能在页面刷新过程中生存,你可以使用'canvas.toBlob(b => localStorage.mycanvas = URL.createObjectURL(b));'当你完成绘制时,'if localStorage.mycanvas){let img = new Image(); img.onload = E => ctx.drawImage(IMG,0,0); img.onerrror = E => {localStorage.mycanvas = ''; defaultInit();} img.src = localStorage.mycanvas; } else {defaultInit()};'**但是如果它总是相同的结果,为什么不直接在你的服务器上保存一个png版本?** – Kaiido

+0

你可以使用LocalStorage缓存画布,甚至可以节省一半在你的服务器上的画布,所以加载时间会少很多,如果你找不到一种方法来减少时间你可以使用setTimeout和setInterval(和其他选择),而不是for/while循环或甚至重计算并为其添加加载。它需要更多的时间来完成,但至少会有很好的加载。 – moisrex

+0

非常感谢。实际上我使用的是统一画布,所以画布不仅仅是一个图像,而是一个完整的webgl引擎。顺便说一句,如果有一个窍门,这将是一个伟大的专业人士,但似乎我需要以另一种方式工作 – LaBracca

回答