Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用<;脚本>;标签_Javascript_Caching_Coldfusion - Fatal编程技术网

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提供