我正在寻找一些方法来从数组(或列表)中获取前x个元素.类似于Left()字符串函数或JavaScript .slice()函数的东西.
所以它会做...
a = [1,2,1,3,4,5,1,6,7,8,1,9];
x = 10;
firstTen = ArrayLeft(a, x);
// ...or...
firstTen = ArraySlice(a, 1, x);
// ^ Returns the elements from 1 to 10: [1,2,1,3,4,5,1,6,7,8]
Run Code Online (Sandbox Code Playgroud) {% set key = 'something' %}
Run Code Online (Sandbox Code Playgroud)
我array有密钥,可以访问array['something'],但是当我尝试在密钥中使用变量时,例如:
array[key]
Run Code Online (Sandbox Code Playgroud)
我收到阵列键不存在的错误。所以问题是如何使用变量访问数组键。
我正在尝试通过从浏览器中移动到单独的弹出窗口来改进我为我的网站创建的音乐播放器,我创建/操纵了我发现的代码,使jQuery获取href值并将其发送到一个新窗口,只有在点击<a>标签时才会发出问题,它会执行href click和jQuery操作(就像它一样).我正在尝试找到一种有效的方法,以便在用户禁用JavaScript时,他们至少可以在新标签中使用音乐播放器,而不是根本不能听,但我不确定如何要解决这个问题.将元素href设置为var,然后删除href属性工作?或者这会导致错误吗?
示例HTML:
<a href="this_page.cfm?song=1" target="_blank" class="playSong" id="#artist# - #song#">Play Track</a>
Run Code Online (Sandbox Code Playgroud)
示例jQuery:
<script type="text/javascript">
$(document).ready(function(){
$(".playSong").click(function(){
var url = $(this).attr('href');
var windowName = $(this).attr('id');
window.open(url, windowName, "height=300,width=400");
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 以下QoQ的倾销结果非常好:
<cfquery datasource = "XX.XX.X.XX" name="master2">
SELECT DATE(Timedetail) as FIRSTCONN
, count(Timedetail) as FIRSTOccurances
, EVENTS
FROM MyDatabase
WHERE EVENTS = "FIRST" GROUP BY FIRSTCONN
<!--- LIMIT 0,10 --->;
</cfquery>
<cfdump var="#master2#">
<cfquery dbtype="query" name="detail2">
SELECT *
FROM master2
WHERE FIRSTCONN >= <cfqueryparam value="#startdate#" cfsqltype="cf_sql_date">
AND FIRSTCONN < <cfqueryparam value="#enddate#" cfsqltype="cf_sql_date">;
</cfquery>
Dumping Result: <cfdump var="#detail2#"><cfabort>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在QoQ上使用以下检查时:
Dumping Result: <cfdump var="#detail2.FIRSTCONN#"><cfabort>
Run Code Online (Sandbox Code Playgroud)
我没有看到完整的FIRSTCONN值列表.相反,我只看到一行:
Run Code Online (Sandbox Code Playgroud)Dumping Result: {ts '2013-06-29 00:00:00'}
理想情况下,我应该看到FIRSTCONN浏览器中所有内容的列表,不应该吗?
我使用以下代码加密用户密码.
<cfset "EncryptedNewPass" = Encrypt(#HTMLCodeFormat(NewPass)#, Request.PasswordKey)>
Run Code Online (Sandbox Code Playgroud)
然后将它与存储在数据库中的值进行比较,它可以正常工作.但是,如果我从数据库中获取值并使用decrypt,如下所示
<cfset DecryptedPass = Decrypt(#getOrigPassFP.pass#, Request.PasswordKey)>
Run Code Online (Sandbox Code Playgroud)
并执行cfout,该值包含<pre> </pre>标记.我遇到的问题是因为我们也使用密码打开PDF文档,这是一个错误.我尝试使用replace来剥离标记,但是当它显示或传递给变量时,它仍然包含<pre>标记.
我真的希望你能帮助我.我通常将会话变量读入局部变量,这样我就不必创建无限的读锁.但我遇到了一些有趣的行为.请注意,为简洁起见,我没有应用任何写锁:
考虑以下:
例1:
<cfset session.testvalue = 1 />
<cfset lcktestvalue = session.testvalue />
<cfoutput>#lcktestvalue#</cfoutput><br />
<cfset session.testvalue = 2 />
<cfoutput>#lcktestvalue#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
1
1
例2:
<cfset session.testvalue1.item = 1 />
<cfset lcktestvalue1 = session.testvalue1 />
<cfoutput>#lcktestvalue1.item#</cfoutput><br />
<cfset session.testvalue1.item = 2 />
<cfoutput>#lcktestvalue1.item#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
1
2
我试图弄清楚为什么第二个例子,更新'lcktestvalue1.item',当值只读一次?我希望示例1和2生成相同的输出,以下以生成第二个示例的输出:
例3:
<cfset session.testvalue1.item = 1 />
<cfset lcktestvalue1 = session.testvalue1 />
<cfoutput>#lcktestvalue1.item#</cfoutput><br />
<cfset session.testvalue1.item = 2 />
<cfset lcktestvalue1 = session.testvalue1 />
<cfoutput>#lcktestvalue1.item#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
1
2
我能想到的这种行为的唯一原因是第二个例子,它使用了一个结构内部的结构.但是,我无法扩展这个概念.你能?我真的需要理解这一点,因为我正在创建一个购物车,它广泛使用了示例2中的方法.它实际上工作正常,但我不确定为什么,我担心在负载下,它可能会失败?
感谢您提供的任何帮助.
我正在使用谷歌地图嵌入代码来集成地图的多针位置。
<iframe src="https://www.google.com/maps/d/embed?mid=zsjXv3NS8g6Y.krO7DAwRdcZk" height="480" width="640"></iframe>
Run Code Online (Sandbox Code Playgroud)
该地图在所有其他浏览器中正确呈现,但存在交叉原点引用错误。(即使在具有旧版本警告的 IE7 中)
这是我在 chrome 和 IE 上看到的消息
XMLHttpRequest 无法加载https://accounts.google.com/ServiceLogin?service=mapsengine&passive=1209600 ...p= https://www.google.com/maps/d/gen204?a%3D58%26width%3D640%26height%3D480 . 请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ https://www.google.com ”。
但在 Firefox 中有一个不同的错误,地图无法加载。
ReferenceError:_startApp 未定义 https://www.google.com/maps/d/embed?mid=zsjXv3NS8g6Y.krO7DAwRdcZk 第 7 行
这是我无法修改的嵌入代码。任何解决方案?
编辑:iframe 在没有地图的情况下加载,但显然 iframe 中的脚本正在中断导致此错误。
我当前的任务要求我从一个非常大的数据库中导出大约100,000行数据.
我非常擅长处理大数据,我很想听听过去曾经历过这些问题的人们的一些最佳实践和指导方针,这些问题过去是为了使这个帖子非主观.
更多细节:
数据库完全没有标准化(非常难看)
我必须处理至少100,000行
该任务在午夜运行,用户较少
目前使用ColdFusion 9,PostgreSQL 8.4
谢谢!
这是应用Craig解决方案后我的代码的样子:
<cfset base_path = GetDirectoryFromPath(ExpandPath("*.*")) & "some_parent\some_child\">
<cfif not DirectoryExists(base_path)>
<cfdirectory directory="#base_path#" action="create" mode="777">
</cfif>
<cfset this_batch_path = DateFormat(Now(), 'mmddyyyy') & TimeFormat(Now(), 'hhmmss') & "\">
<cfdirectory directory="#base_path##this_batch_path#" action="create" mode="777">
<cfset this_filename = "someprefix_" & DateFormat(Now(), 'yyyymmdd') & ".csv">
<cffile action="write" file="#base_path##this_batch_path##this_filename#" output="">
<cfset escaped_copy_path = ListChangeDelims(base_path & this_batch_path & this_filename, "\\", "\")>
<cfquery name="qMyQuery" datasource="some_db" username="some_uname" password="some_pword" result="something">
COPY some_table TO '#escaped_copy_path#' WITH CSV …Run Code Online (Sandbox Code Playgroud) 我试图在一个简单的按钮点击初始化地图加载但没有运气.此外,javascript控制台中不会抛出任何错误.
如果我把它改成它就可以google.maps.event.addDomListener(window, 'load', initialize);了.
var showMap = $('#show-map');
function initialize() {
var mapOptions = {
center: { lat: 0, lng: 0 },
zoom: 8
};
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
}
google.maps.event.addDomListener(showMap, 'click', initialize);Run Code Online (Sandbox Code Playgroud)
#map-canvas {
height: 30em;
width: 30em;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCgxY6DqJ4TxnRfKjlZR8SfLSQRtOSTxEU"></script>
<button id="show-map">Show Map</button>
<div id="map-canvas"></div>Run Code Online (Sandbox Code Playgroud)
在过去(大约在2015年1月左右),当我将地址片段发送到google maps API时,我会找回与我的地址片段匹配的内容列表.例如,如果我输入"16 Crystal Street",我曾经获得可能的匹配列表.现在,我得到一个部分匹配的结果.
有没有办法让google maps API返回一个与地址片段匹配的地址列表?
在java API中,例如:
public GeocodingResult[] queryService()
{
GeoApiContext context = new GeoApiContext().setApiKey(Geocoder.GOOGLE_API_KEY);
GeocodingResult[] results;
try
{
results = GeocodingApi.geocode(context,"16 Crystal Street").await();
return results;
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
结果数组现在只有一个项目,而它用于包含多个与输入地址匹配的地址.
coldfusion ×5
google-maps ×3
coldfusion-9 ×2
javascript ×2
jquery ×2
arrays ×1
coldfusion-8 ×1
encryption ×1
firefox ×1
html ×1
list ×1
postgresql ×1
twig ×1