Javascript 使用<;脚本>;标签
我经常看到,有时动态文件是通过下面的Javascript 使用<;脚本>;标签,javascript,caching,coldfusion,Javascript,Caching,Coldfusion,我经常看到,有时动态文件是通过下面的标记提供的。“abc.cfm”文件包含JavaScript和服务器端CF代码 <script type="text/javascript" src="abc.cfm"> 如果我们使用简单的.js文件而不是server.cfm文件,通常JavaScript文件会缓存在浏览器中。那么,上述关于缓存的行为将如何?浏览器会使用JavaScript的缓存内容,还是每次都会调用CF服务器获取代码内容并重新编译js?另外,使用这种技术的优点和缺点是什么 我
标记提供的。“abc.cfm”文件包含JavaScript和服务器端CF代码
<script type="text/javascript" src="abc.cfm">
如果我们使用简单的.js文件而不是server.cfm文件,通常JavaScript文件会缓存在浏览器中。那么,上述关于缓存的行为将如何?浏览器会使用JavaScript的缓存内容,还是每次都会调用CF服务器获取代码内容并重新编译js?另外,使用这种技术的优点和缺点是什么
我搜索了很多,但找不到一个恰当解释这一点的相关好答案
关于上述技术的优点是服务器正在生成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 --->
如果您在ABC.cfm的顶部弹出,浏览器应该每次都重新加载它
这种方法的缺点是,每次加载页面时,浏览器都必须加载abc.cfm,从而降低页面速度。另一个问题是abc.cfm往往包含JS和CF代码的混合,这不利于维护。另一种方法是将所有代码编写为.JS文件,让浏览器缓存该文件,并使用CF代码将所需数据作为JSON直接输出到页面中。然后调用JS代码,将打印的JSON数据传递到页面中。寻找一种简洁的方法,将CF数据转换为客户端可以读取的JSON。回答得很好,@barnyr。应该特别关注最后一段,特别是在同一个文件中混合JS和CFML的方法,这有点垃圾。正如你所说的,拥有单独的文件要好得多。仅供参考:CSS也可以通过ColdFusion提供