CF8から9への変更により、ディスクキャッシュへの書き込みがカスタムキャッシュや他の劇的な回避策を作成しなくてもできなくなってしまったことは盲目でした。ColdFusion 9.0.1キャッシュメモリの内容を解析することはできますか?
現時点では、キャッシュファイルの内容を静的なcfmファイルに書き込むのと同じ方法で、可能な場合はアプリケーションを維持するようにアプリケーションを変換しようとしました。私はもっと深く掘り下げたので、もっと興味がある。私は自分よりもこれ以上の経験を持つ人を探しています。私は理解したり、テンプレートキャッシュを行う方法を知りたい何
は次のとおりです。
- は、デフォルトまたはカスタムキャッシュ内のテンプレートを対象とし、全体のキャッシュをクリアせずに、それをフラッシュすることができます。
- 特定のキャッシュされたテンプレートの内容を好奇心やデバッグの方法で表示または解析します。
これは私がツールを使用していたコードで、EhCache 2.0を追加したために9.0で利用できないキャッシュメモリ機能のためにCF 9.0.1が必要です。
<cftry>
<cfcache action='serverCache' timeout='#CreateTimeSpan(0,0,0,10)#' stripwhitespace='true'
usequerystring='true'>
Stuff to cache.
<br/>
<cfoutput>#now()#</cfoutput>
<br/>
</cfcache>
<!--- Get the cached contents --->
<cfdump var="#cacheGetProperties()#">
<cfdump var="#getAllTemplateCacheIds()#">
<!---Locate a single cached item --->
<cfscript>
cacheArray = getAllTemplateCacheIds();
WriteOutput("Before<br/>");
for(i=1;i LTE ArrayLen(cacheArray);i=i+1)
{
writeOutput(cacheArray[i] & "<br/>");
if(FindNoCase(scriptPath, cacheArray[i]))
{
//expect only to find min and max one per string so no need to worry about out of bounds
cacheIDSubStr = REFind("[a-fA-F\d]{32}(?=_LINE:\d*$)",cacheArray[i],1,1);
cacheID = Mid(cacheArray[i],CacheIDSubStr.pos[1],CacheIDSubStr.len[1]);
//Failure to delete cache expected fireworks
//WriteOutput(cacheID&"<br/>");
//cacheObject = CacheGet(cacheID);
//CacheRemove(cacheID);
templateCache = cacheGetSession("template");
//Tooling around with the exposed guts of cacheGetSession
WriteDump(templateCache.getKeys());
}
}
</cfscript>
<cfcatch type="Any">
<cfscript>
writeoutput("Error:" & cfcatch.message);
</cfscript>
</cfcatch>
</cftry>
エラーはありませんが、オリジナルから編集してここに投稿してください。