Javascript 强制Pixi.js WebGl始终使用新画布,以解决在未清除浏览器缓存的情况下重新加载页面后出现的错误

Javascript 强制Pixi.js WebGl始终使用新画布,以解决在未清除浏览器缓存的情况下重新加载页面后出现的错误,javascript,html,html5-canvas,pixi.js,Javascript,Html,Html5 Canvas,Pixi.js,我的Pixi.js“游戏”画得很好,效果很好,当网页(见评论部分的临时链接)第一次加载时,或者在新的Chrome/Incognito查看页面中。然而,当重新加载页面时,(webgl)画布上总是会出现这样一个绘图错误 如果我从ChromeDeveloperTools中启用ChromeDisableCache设置,则不会出现此问题,因此它必须与缓存相关。 需要清除画布缓存,以便再次正确绘制画布 我必须假设在重新访问/重新加载页面之间,客户端上仍有一些缓存(webgl)内容,这导致了画布上的绘图错误。

我的Pixi.js“游戏”画得很好,效果很好,当网页(见评论部分的临时链接)第一次加载时,或者在新的Chrome/Incognito查看页面中。然而,当重新加载页面时,(webgl)画布上总是会出现这样一个绘图错误

如果我从ChromeDeveloperTools中启用ChromeDisableCache设置,则不会出现此问题,因此它必须与缓存相关。 需要清除画布缓存,以便再次正确绘制画布

我必须假设在重新访问/重新加载页面之间,客户端上仍有一些缓存(webgl)内容,这导致了画布上的绘图错误。 即使按Shift+reload,重新绘制错误也会再次出现

关于Pixi WebGl画布,我每次都试图制作一个新的画布作为修复,但似乎没有帮助,新的画布是这样被提及的,但Pixi总是制作自己的画布

  r.app = new l.Application({
            backgroundColor: 16777215,
            height: 620,
            width: 1100, clearBeforeRender: true, view :  document.getElementById("canv"&location.search.split('v=')[1])
        })
    },
我更喜欢以某种方式强制清除画布缓存,始终使用新的画布名称或提供一些画布选项是否有帮助

另一个选择是根本不使用WebGL模式。
我怎样才能强迫PixiJS永远不要使用WebGL?

你能先试试吗

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

如果它不起作用,这是我的另一个问题

您是否在本地计算机上运行服务器?或者,您正在处理静态html文件? 如果您使用的是某种类型的服务器,则需要根据服务器类型遵循以下说明

  • [http://cristian.sulea.net/blog/disable-browser-caching-with-meta-html-tags/ ]

每次调用new PIXI.Texture.fromImage时,都会创建well textureCache,并检查它(或baseTexture)是否已保存在缓存中,以防止反复下载纹理。。。。如果已加载,则从服务器中删除


想象一下创建一个雨的效果,并准备雨滴在一个for循环中,它没有帮助,对不起。谢谢,是的,有精灵,但没有从服务器加载的生物,它只是非常简单的文本字体和一些颜色。有没有办法在页面重新加载开始时删除所有缓存的精灵?我想我们需要更多信息。考虑到大多数使用Pixi.js制作的页面都可以正常工作,您有什么不同?不知道我们能帮什么忙?您是否可以尝试进行最小的回购,并通过一个很不幸的问题将其放在问题本身中,只是在场外链接到代码对于堆栈溢出来说是离题的。你必须在问题中加入足够的代码来重现问题。问题是我不知道32K代码的哪一部分导致了问题,也许我需要将我的问题重新表述为:如何强制Pixi始终重置画布…这是制作最小版本的要点之一。把所有的零件都拔出来。开始重新添加零件,直到重新处理问题。你要么自己发现问题,要么就有一个最低版本可供分享。你能画一个单一的纹理和回购问题吗?如果没有,如果您有2个纹理,它是否会修复问题?等等,添加功能直到你得到一个最小版本;从PIXI设置中禁用WebGL是否可以解决整个问题?canvas2d有这种精灵缓存吗?所有需要做的就是在页面重新加载后去掉画布上剩余的一些项目。