DuplicateColdFusion 9 的功能应该返回一个变量的克隆,也称为深拷贝,而不引用原始变量.对于复杂的对象,例如结构和查询,这应该是正确的.
我正在使用一个使用APPLICATION范围内的查询对象的代码.需要在本地修改此查询以在特定页面中使用,我需要知道原始查询字符串是什么(在查询对象的元数据中).因此,在这种情况下,创建原始查询的深层副本是最明智的解决方案.
但不幸的是,看起来ColdFusion并不是克隆整个对象,而只是克服其结果集,从而丢失了所有元数据.
这不是我期望的行为Duplicate,我发现它与复制其他类型的复杂对象时发生的情况不一致.
我的问题的一个解决方案是将结果集和sql字符串作为单独的参数传递给函数.
但是,我想知道,如果你有一个更优雅的解决方案,和/或对查询重复问题略微说明.
这里有一些代码证明了查询重复的问题:
<cfquery name="qry" datasource="mydatasource">
SELECT "blue" AS colour, "pear" as fruit
</cfquery>
<cfset qry_copy = qry>
<cfset qry_deepcopy = duplicate(qry)>
<cfdump var="#qry#" label="Original query" />
<cfdump var="#qry_copy#" label="Copy of the query (by reference)" />
<cfdump var="#qry_deepcopy#" label="Deep copy of the query (by value)" />
<cfdump var="#qry.getMetaData().getExtendedMetaData()#" label="Metadata of the original query" />
<cfdump var="#qry_copy.getMetaData().getExtendedMetaData()#" label="Metadata of the copy of the query" />
<cfdump var="#qry_deepcopy.getMetaData().getExtendedMetaData()#" label="Metadata of the deep copy …Run Code Online (Sandbox Code Playgroud) 使用analytics.js时,我可以通过这种方式成功跟踪包括自定义维度的事件(如文档中所述):
ga('send', 'event', 'category', 'action', {
'metric18': 8000,
'dimension6': 'crocodile'
});
Run Code Online (Sandbox Code Playgroud)
但是,当使用测量协议(即HTTP请求)时,我似乎无法找到将自定义维度和指标包含在事件跟踪中的方法,因为我在文档中没有找到任何参考.
这是我到目前为止所尝试的(基于文档中的示例).在这两种情况下,事件实际上都已被跟踪,但没有任何自定义维度或指标关联.
http://www.google-analytics.com/collect?
v=1 // Version.
&tid=UA-XXXX-Y // Tracking ID / Property ID.
&cid=555 // Anonymous Client ID.
&t=event // Event hit type
&ec=video // Event Category. Required.
&ea=play // Event Action. Required.
&metric18=8000
&dimension6=crocodile
Run Code Online (Sandbox Code Playgroud)
和
http://www.google-analytics.com/collect?
v=1 // Version.
&tid=UA-XXXX-Y // Tracking ID / Property ID.
&cid=555 // Anonymous Client ID.
&t=event // Event hit type
&ec=video // Event Category. Required.
&ea=play // Event …Run Code Online (Sandbox Code Playgroud) analytics google-analytics google-analytics-api universal-analytics measurement-protocol