Javascript Google Drive上托管的页面中jQuery脚本执行缓慢

Javascript Google Drive上托管的页面中jQuery脚本执行缓慢,javascript,jquery,html,google-drive-api,Javascript,Jquery,Html,Google Drive Api,我为Physics JS构建了一个创作工具: 绝对: 该工具已通过鼠标套和鼠标出的颜色交换实现 对图像按钮的影响 代码: 这在本地非常有效。但是,在谷歌硬盘上,它是 需要一些时间 解决办法是什么 GitHub: 这与其说是代码的问题,不如说是图像的缓存问题(或者说缺少图像)- 缓存控制:专用,最大年龄=20 日期:太阳,2014年1月5日09:34:29格林威治标准时间 到期时间:2014年1月5日星期日09:34:29 GMT 最后修改:2014年1月4日星期六10:16:26 GMT 位置

我为Physics JS构建了一个创作工具:

绝对:

该工具已通过鼠标套和鼠标出的颜色交换实现 对图像按钮的影响

代码:

这在本地非常有效。但是,在谷歌硬盘上,它是 需要一些时间

解决办法是什么

GitHub:


这与其说是代码的问题,不如说是图像的缓存问题(或者说缺少图像)-

缓存控制:专用,最大年龄=20

日期:太阳,2014年1月5日09:34:29格林威治标准时间

到期时间:2014年1月5日星期日09:34:29 GMT

最后修改:2014年1月4日星期六10:16:26 GMT

位置:/host/0B8yu2s4Q9YD8OG00WElPQllYTW8/images/

伺服器:GSE

状态:304未修改

max age属性以秒为单位,expires值告诉浏览器缓存它

因此,浏览器会对每个鼠标悬停和鼠标悬停进行“条件获取”,以查看图像是否已更改。对于我来说,在一个合理的固定线路连接上需要301ms的时间——在移动网络上,延迟会高得多

设置将来的过期时间(绝对最短一小时),以避免重复获取图像

您使用的是哪个版本的jQuery?自从jQuery版本1.7以来,它一直是绑定事件的首选方法-您还可以通过将DOM元素存储为变量来避免重复查找,从而使代码稍微更高效

var $beginButton = $('input#b1');

$beginButton.on('mouseover', function() {
    $(this).attr("src", "images/Begin_hover.png");
});
$beginButton.on('mouseout', function() {
    $(this).attr("src", "images/Begin.png");

如何设置?该页面位于Google Drive上。关于jQuery版本,页面来源清楚地显示版本是1.9.0。是的,但是您没有在这里提供版本,在我访问您的页面之前,我已经制定了答案的这一部分作为评论。在设置过期和缓存控制设置方面,我不知道-我从来没有使用Google Drive托管过主机,特定于主机的设置和配置问题不适合StackOverflow,它的存在是为了解决特定的编程相关问题。我很快在谷歌上搜索了说明,但在合理的时间内没有看到任何内容,我建议你检查他们的文档,如果仍然存在问题,请联系支持部门。因此,根据你的说法,没有代码级别的解决方案?你可以在JavaScript中创建图像作为变量(按照),然后从页面中删除现有图像,将其替换为相应的JavaScript创建的图像。您需要切换到委托事件,因为对象将永远被附加和销毁,但我甚至不确定这是否能解决缓存问题。我能想到的唯一确定的方法是在父容器中有两个图像,您可以有选择地显示和隐藏它们。但是,如果您能解决缓存问题,现有代码应该可以正常工作。我会随时通知您。
var $beginButton = $('input#b1');

$beginButton.on('mouseover', function() {
    $(this).attr("src", "images/Begin_hover.png");
});
$beginButton.on('mouseout', function() {
    $(this).attr("src", "images/Begin.png");