Gur*_*awa 3 javascript coldfusion caching
我经常看到有时动态文件通过<script>标签提供,如下所示."abc.cfm"文件包含JavaScript和服务器端CF代码.
<script type="text/javascript" src="abc.cfm">
Run Code Online (Sandbox Code Playgroud)
通常,如果我们使用简单的.js文件而不是服务器.cfm文件,则JavaScript文件会缓存在浏览器中.那么上面的缓存如何表现呢?浏览器是否会使用JavaScript的缓存内容,或者每次都会向CF服务器调用以获取代码内容并重新编译js?另外,使用这种技术的优点和缺点是什么?
我搜索了很多但找不到相应的好答案,这恰当地解释了这一点.
问候
bar*_*nyr 10
上述技术的优点是服务器正在生成JavaScript.这意味着您可以使用ColdFusion从数据库或用户的会话中获取数据.也许您需要一组数据来填充一些下拉菜单,具体取决于某人选择的内容.上例中的abc.cfm可以查询数据库并生成一些包含所需数据的JavaScript.
关于浏览器缓存,浏览器将缓存它被告知缓存的内容.如果你在abc.cfm中发送标题告诉浏览器不要缓存文件,那么每次加载页面时它都会重新加载.用于表示没有缓存的一组典型标头是:
<cfheader name="Cache-Control" value="no-cache, must-revalidate">
<cfheader name="Pragma"value="no-cache">
<cfheader name="Expires" value="Sat, 26 Jul 1997 05:00:00 GMT"> <!--- Date in the past --->
Run Code Online (Sandbox Code Playgroud)
如果你在ABC.cfm的顶部弹出它,浏览器应该每次都重新加载它.
该方法的缺点是浏览器必须在每次加载页面时加载abc.cfm,从而减慢页面速度.另一个问题是abc.cfm往往包含JS和CF代码的混合,这对维护来说并不好.另一种方法是将所有代码编写为.JS文件,让浏览器缓存并使用CF代码将JSON直接导入页面时所需的数据吐出.然后调用JS代码,将打印的JSON数据传入页面.查看SerializeJSON以获得将CF数据转换为客户端可以读取的JSON的简洁方法.
| 归档时间: |
|
| 查看次数: |
1198 次 |
| 最近记录: |