强制定时更新 CSS 文件
Force timed update of CSS file
编辑:
感谢Akshat和Jeffrey的帮助和建议。 我将用非常简单的术语重新提出我的问题:
如何使我的网页在坐标更改时平滑地重新定位图像。应用程序每隔一分钟左右将 cordinate 写入服务器上的文件。 我说顺利是因为我不希望用户干预或强制页面刷新(META HTTP-EQUIV=REFRESH CONTENT=300),这很容易,但不是一个很好的用户体验。
我希望这是有道理的。 再次感谢。
我有一个简单的网页,上面有一张图片 - 一张地图 - 每分钟左右就会发生变化。地图每 30 秒动态更新一次,如下所示:
<script language="JavaScript">
<!--
function refreshMap1() {
if (!document.images) return;
document.images['map1'].src = 'map1.jpg?' + Math.random();
setTimeout('refreshMap1()',30000);
}
//--></script>
然后:
<body onload=" setTimeout('refreshMap1()',30000)">
<img src="map1.jpg" name="map1">
这工作正常。
我通过加载包含绝对定位的样式表在地图上叠加动画 gif,如下所示:
<link rel="stylesheet" type="text/css" href="position.css" />
然后:
<img src="animation.gif" class="pos1" id="a1">
css 文件(position.css)只包含:
.pos1 { position: absolute; left: 300px; top: 400px; }
这也很好用,但是.... css 文件将每分钟左右与地图相同地更改一次,以反映 gif 的新位置。 我想通过以与地图类似的方式每 30 秒强制更新一次 css 来动态更改动画 gif 的位置。 我无法找到强制动态定时更新 css 文件的方法。
有什么想法吗?
蒂亚。
您不需要更改 css 文件。只需将其放入刷新功能中:
document.getElementById("a1").style.top = XXX+"px";
document.getElementById("a1").style.left = XXX+"px";
我希望这有所帮助。
如果id
或class
在每个 CSS 文件中都是唯一的,您可以预先加载所有 CSS,并每 30 秒更改一次标识符。CSS 文件很少太大。
动态加载CSS是可能的,但我真的不建议这样做;它违背了Web标准,并且欢迎潜在的安全问题。一种方法是将内容注入style
标签中,如以下答案所述:
动态加载页面内容及其 CSS - 如何防止跳转,因为 CSS 尚未加载?
最后一点,您可能应该练习将字符串用于setTimeout
函数。使用匿名函数,或者如果函数是全局的(在您的情况下是全局的),则使用对该函数的引用。 例如,setTimeout(refreshMap1, 30000);
可以取代setTimeout('refreshMap1()',30000);
。
- 如何修复:当javascript更改DOM时,iOS会删除CSS文件
- 使用Javascript读取CSS文件并动态更改页面
- js和css文件-在publichtml外部或内部
- Google PageSpeed Insights与多个CSS文件
- Javascript:动态更改CSS文件+Cookie
- 没有在django项目中加载CSS文件
- 在企业应用程序框架中包含js/css文件的最佳实践是什么
- Chrome审核:在外部CSS文件之间的头中发现了1个内联脚本块&”;
- 使用新的 CSS 文件覆盖当前网站
- 多余的JS和CSS文件
- 快递.js无法获取我的 CSS 文件
- 无法查找元素'手动加载CSS文件时的CSS属性
- jquery移动应用程序无法使用jquryMobile框架JS和css文件的相对路径
- 不同的引导 CSS 文件
- 加载CSS文件并覆盖上一个文件
- 使用 JavaScript 动态加载 CSS 文件
- 如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
- 在 html 文件中包含无缓存元标记是否也会阻止缓存该 html 文件中链接的 js 和 css 文件
- Spring MVC 集成 js 和 css 文件
- 如何将 JavaScript 和 CSS 文件添加到 MagentoModule