我正在使用jQuery从xml文件中获取数据并将其保存为字符串.字符串是一个switch语句,我想成为一个函数.
$.get('type.xml', function(xml) {
var cases=[];
$(xml).find('type').each(function(){
index=parseInt($(this).find('earn').text());
if($.isArray(cases[index])){
cases[index].push($(this).find('name').text());
}else{
arr=$.makeArray($(this).find('name').text());
cases[index]=arr;
}
});
var autoearn="function(x){switch(x){";
for(i=0;i<=100;i+=5){
if($.isArray(cases[i])){
$.each(cases[i], function(index,v){
autoearn+='case "'+v+'":';
});
autoearn+='$("input[name^=\'earn\']").val('+i+');break;';
}}
autoearn+='}}';
});
Run Code Online (Sandbox Code Playgroud)
第一部分创建一个2D数组,通过索引将一组案例与其结果输出相关联.因此,收入10美元(例如会议)的东西将被存储在案例[10]中(会议=案例[10] [0]).
第二部分写了一个字符串,将一个put放入一个看起来像这样的switch语句:
function(x){
switch(x){
case "Meeting":
$("input[name^='earn']").val(10);
break;
case "Event1":
case "Event2":
$("input[name^='earn']").val(20);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,switch case的语法使Event1和Event2具有相同的结果.
现在autoearn只是一个包含我想要的函数代码的字符串.怎么做成功能?有一个更好的方法吗?我想送它通过PHP返回回jQuery的,但是这整个事情似乎真的间接的,有可能是一个更简单的方法来做到这一点.
可能重复:
未初始化的变量如何获得垃圾值?
如何在C和C++中生成垃圾值?编译器是否使用一些随机数生成技术来生成垃圾值?
在大多数浏览器中呈现的标准复选框非常小,即使使用较大的字体也不会增加大小.什么是最好的,独立于浏览器的方式来显示更大的复选框?
我是一个打击脚本的新学生,我很难解决任务问题.我想知道是否有一种简单的方法来确定用户的输入是否是整数.更具体地说,如果提示用户输入整数,是否需要快速检查以进行验证?
我将简要介绍一下:为了使用Django应用程序的精神和想法,应用程序可以从另一个应用程序中导入模型吗?比如,用户统计应用程序将从User应用程序导入模型,例如:from users.models import users
你能为GAE推荐一个模板引擎吗?我喜欢Wicket,但它带有很多服务器端状态,这与GAE方法不兼容.
GAE 是否支持FreeMarker?
编辑
我对模板引擎的主要要求是:
我见过这里有人可以解释这个功能:
// REMOVE All MARKERS FUNCTION
// Removes all markers currently on map
// PARAMS: None
function removeAllMarkers(){// removes all markers from map
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
markersArray = [];
markersInfoArray = [];
};
};
};
Run Code Online (Sandbox Code Playgroud)
但我收到一个javascript错误...
中断错误markersArray [i] .setMap不是函数
该页面位于:http://www.focus-on-plants.com/locator.php
有任何想法吗???
<--------------- ---------------------更新>
我试过sugestions,也感动MarkersArray=[]和markersInfoArray = []到了的for循环,所以我有这样的一面:
for( var i = 0; i < markersArray.length; i++ ){
markersArray[i].setMap(null);
}
Run Code Online (Sandbox Code Playgroud)
但我得到了同样的结果 error markersArray[i].setMap is not a function
所以我环顾四周尝试了这种方法:
function …Run Code Online (Sandbox Code Playgroud) 我在一个有很多字段的类上调用一个简单的XmlSerializer.Deserizlize()时遇到了巨大的性能损失.
注意:我在家里没有Visual Studio编写代码,因此可能会有一些错误.
我的可序列化类是扁平的,有数百个字段:
[Serializable]
class Foo
{
public Foo() { }
[XmlElement(ElementName = "Field1")]
public string Field1;
// [...] 500 Fields defined in the same way
[XmlElement(ElementName = "Field500")]
public string Field500;
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序反序列化输入字符串(甚至很小):
StringReader sr = new StringReader(@"<Foo><Field1>foo</Field1></Foo>");
XmlSerializer serializer = new XmlSerializer(typeof(Foo));
object o = serializer.Deserialize(sr);
Run Code Online (Sandbox Code Playgroud)
运行在32位系统中的应用(或32位被迫corflags.exe),代码需要大约一秒钟的第一次(临时序列化类的生成,和所有的...),那么它的接近0.
在64位系统中运行应用程序,代码第一次占用一分钟,然后接近0.
在第一次执行XmlSerializer期间,对于大型类,在64位系统中,可能会将系统挂起这么长时间?
现在我不确定是否必须责怪临时类生成/删除,xml名称表初始化,CAS,Windows搜索,AntiVirus或圣诞老人......
破坏者
以下是我的测试,如果您不想被我(可能的)analysys错误所牵制,请不要阅读此内容.
为了进一步解释最后一点,如果我有一个班级:
[Serializable]
class Bar
{ …Run Code Online (Sandbox Code Playgroud) 我现在有大约4个不同版本的数据模型,除了最后一个版本之外的每个版本都只是使用自动轻量级迁移的一个小改动.对于这个最新的模型,我需要在迁移期间做一些额外的工作,所以我创建了一个自定义映射模型和一个迁移策略子类,其中包含createDestinations和createRelationships中的一些操作.问题是,我没有调用我的映射模型/自定义策略,而且似乎Core Data正在尝试执行轻量级迁移.我是否需要做些什么来保持轻量级迁移,但是当有可用的映射模型时使用我的映射模型?
我阅读了Process.StandardOutput的文档,其中包含以下引用:
如果父进程在p.StandardOutput.ReadToEnd之前调用p.WaitForExit并且子进程写入足够的文本来填充重定向的流,则可能导致死锁条件.
所以我很想知道.如果我还害怕在某些情况下可以填充StandardError,那么正确的方法是什么?
我是否必须使用循环来交替读取标准输出和错误,以避免填充,或者这个简单的代码是否足够:
string error = proc.StandardError.ReadToEnd();
string output = proc.StandardOutput.ReadToEnd();
bool didFinish = proc.WaitForExit(60000);
Run Code Online (Sandbox Code Playgroud)
在发布了一些答案后编辑
那么这是正确的方法吗?
var output = new StringBuilder();
proc.OutputDataReceived += (s, e) => output.Append(e.Data);
proc.BeginOutputReadLine();
string error = proc.StandardError.ReadToEnd();
bool didFinish = proc.WaitForExit(60000);
Run Code Online (Sandbox Code Playgroud)
然后我只在进程实际完成时才使用stringbuilder内容.
这是正确的方法吗?