Evi*_*mes 3 coldfusion coldfusion-10
我们有一个创建成千上万个静态文件的进程.每个文件都是从一个需要几秒钟才能运行的查询创建的.每个文件中的数据每周更改一次.这些文件每天提供约500,000次.因此,似乎尽可能高效地命名,存储和检索这些文件是非常有益的.
目前,文件的名称如下:
123-111-1.htm
123-112-1.htm
123-113-1.htm
456-111-2.htm
456-112-2.htm
456-133-2.htm
Run Code Online (Sandbox Code Playgroud)
在文件中是普通的旧HTML菜单.此页面中没有处理任何内容.实际上,可能有五十个链接.
<h1>Company Name</h1>
<ul>
<li><a href="index.cfm">some link</a></li>
<li><a href="index.cfm">some link</a></li>
<li><a href="index.cfm">some link</a></li>
<li><a href="index.cfm">some link</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我们包括这样的菜单:
<cfset FileToInclude = "#var1#-#var2#-#var3.htm">
<cfinclude template="#FileToInclude#">
Run Code Online (Sandbox Code Playgroud)
我真正的问题是,将文件保存为txt,还是html或cfm会有区别吗?使用不同的文件扩展名,服务器会以不同方式处理它吗?如果它有一个txt扩展名,ColdFusion会完全忽略它而不缓存吗?如果它有一个html扩展名,它是否会被处理但是被缓存?
让我们看看每个选项需要什么
文本
<cfinclude template="#FileToInclude#.txt">
Run Code Online (Sandbox Code Playgroud)
我们知道内容不是纯文本,因此此文件扩展名不会描述其内容.您可以将Web服务器配置为不显示.txt文件.在内部,ColdFusion将处理它,就好像它有标签,这可能不是你所期望的.
HTML
<cfinclude template="#FileToInclude#.html">
Run Code Online (Sandbox Code Playgroud)
这更能描述内容.网络服务器很可能会尝试显示它.在ColdFusion中,它将处理它,好像它有可能不是你期望的标签
CFM
<cfinclude template="#FileToInclude#.cfm">
Run Code Online (Sandbox Code Playgroud)
这描述了实际运行的内容.您可以确保它永远不会作为独立文件运行.因为它有一个.cfm扩展名,所以你希望它由ColdFusion处理.
至于缓存,我认为ColdFusion会将它们全部缓存.
D b
您还应该考虑将数据存储在数据库中
<cfquery name="qryMenu" cachedwithin="#CreateTimeSpan(0, 6, 0, 0)#">
SELECT menu
FROM dbo.menu
WHERE section1 = <cfqueryparam value = "#section1#" cfsqltype = "cf_sql_integer">
AND section2 = <cfqueryparam value = "#section2#" cfsqltype = "cf_sql_integer">
AND section3 = <cfqueryparam value = "#section3#" cfsqltype = "cf_sql_integer">
</cfquery>
<cfoutput query="qryMenu">#menu#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
这样您就不必处理数百个菜单文件.您可以将缓存控制到您想要的内容.它可能会减少您服务器上的负载.
如果包含该文件,CF将解析,编译和处理它.如果文件中没有CFML,这是浪费时间.它还会将生成的编译类放入服务器内存中,这是另一个次要考虑因素,但仍需考虑.
您应该为文件命名文件的内容.这些文件中包含HTML,因此它们应具有.html扩展名.
如果您只想在屏幕上获取文件内容,只需阅读文件并输出即可:
<cfoutput>#fileRead("/path/to/file")#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
随着ColdFusion的11有一些设置在具有比一个.CFM扩展其他文件时,包括他们没有编制,但作为CF10,他们被编译.
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |