求高人看下我这段代码,给点意见。

cddhy 2011-05-17 12:11:04
这段代码运行起来快卡死了,求高人看下给点优化意见和建议。
该批评批评吧,我新手,必须得虚心接受。

(function() {
window.mapEditor = {
uploadBg : function() {
obj.uplpadBg.css("display","block");
},imgMove : function(){
var cfh=obj.click_follow.height()/2;
var cfw=obj.click_follow.width()/2;
$("body").bind("mousemove",function(e){
obj.click_follow.css({left : ""+e.pageX-cfh+"px",top : ""+e.pageY-cfw+"px"});
});
},imgStop : function(){
var cf_X = obj.click_follow.position().left;
var cf_Y = obj.click_follow.position().top;
if(cf_X<data.mapL){
obj.click_follow.css("display","none");
return false;
}
var cfh=obj.click_follow.height();
var cfw=obj.click_follow.width();
obj.click_follow.clone(true).appendTo("body").animate({left : ""+cf_X+"px",top : ""+cf_Y+"px"},0,function(){
$(this).attr("name","article");
var bw=Math.ceil((cf_X-data.mapL-data.mapPL)/data.norms);
var bh=Math.ceil((cf_Y-data.mapPT)/data.norms);
var w=Math.ceil(cfh/data.norms);
var h=Math.ceil(cfw/data.norms);
for(var i=0;i<h;i++){
for(var j=0;j<w;j++){
matrix[bh+i][bw+j]=1;
}
}
});
obj.click_follow.css("display","none");
},eraser : function(){
if(data.flagHinder!=3){
obj.followMouse.html("<img src='"+path+"/mapEditor/images/remove.png' />");
obj.followMouse.css("display","block");
data.flagHinder=3;
}
else{
obj.followMouse.html("");
obj.followMouse.css("display","none");
data.flagHinder=0;
}
},setHinder : function(a){
if(data.flagHinder==1){
obj.followMouse.html("");
obj.followMouse.css("display","none");
data.flagHinder=0;
}else{
obj.setRoad.css("display","none");
obj.setHinder.css({left : ""+$(a).position().left+"px",top : ""+($(a).position().top+$(a).height())+"px"});
obj.setHinder.css("display","block");
}
},setRoad : function(a){
if(data.flagHinder==2){
obj.followMouse.html("");
obj.followMouse.css("display","none");
data.flagHinder=0;
}else {
obj.setHinder.css("display","none");
obj.setRoad.css({left : ""+$(a).position().left+"px",top : ""+($(a).position().top+$(a).height())+"px"});
obj.setRoad.css("display","block");
}
},scale : function(){
if(!obj.scale.is(":visible"))
obj.scale.css("display","block");
else
obj.scale.css("display","none");
}


};
})();
$(document).ready(function() {
window.obj={
uplpadBg:$("#uploadBg"),
click_follow:$("#click_follow"),
followMouse:$("#followMouse"),
setRoad:$("#setRoad"),
setHinder:$("#setHinder"),
scale:$("#main #scale"),
map:$("#main #map"),
main:$("#main")
};
window.data={
mapL:190,
mapT:$("#main #menuBar").height(),
mapPL:obj.map.position().left,
mapPT:obj.map.position().top,
norms:10,
flagHinder:0,
flagN:0
};

obj.scale.css({left : ""+(data.mapPL+data.mapL)+"px",top : ""+data.mapPT+"px"});
obj.scale.width(obj.map.find("#mapBg").width()+10);
obj.scale.height(obj.map.find("#mapBg").height()+10);

//获取map背景的大小
var arrayW=Math.ceil(obj.map.find("#mapBg").width()/10);
var arrayH=Math.ceil(obj.map.find("#mapBg").height()/10);
window.matrix = new Array(arrayW);
for(var i=0;i<arrayH;i++){
matrix[i]=new Array();
for(var j=0;j<arrayW;j++){
obj.scale.append("<div id='"+i+"' name='"+j+"' ></div>");
matrix[i][j]=0;
}
}
window.path = $("#path").val();
obj.uplpadBg.find("#btnSubmit").click(function() {
var file_url = document.getElementById("upload").files[0].getAsDataURL();
alert(file_url);
});
obj.uplpadBg.find("#btnReset").click(function() {
obj.uplpadBg.css("display","none");
});
obj.main.find("#leftChoose img").click(function(){
if(data.flagHinder!=0){
obj.followMouse.css("display","none");
alert("请取消状态后选取!");
obj.followMouse.css("display","block");
return false;
};
obj.click_follow.html("<img src="+$(this).attr("src")+" />");
obj.click_follow.css("display","block");
mapEditor.imgMove();
});
obj.click_follow.click(function(){
if(data.flagHinder==3){
var bw=Math.ceil(($(this).position().left-data.mapL-data.mapPL)/data.norms);
var bh=Math.ceil(($(this).position().top-data.mapPT)/data.norms);
var w=Math.ceil($(this).height()/data.norms);
var h=Math.ceil($(this).width()/data.norms);
for(var i=0;i<h;i++){
for(var j=0;j<w;j++){
matrix[bh+i][bw+j]=0;
}
}
$(this).remove();
}else
mapEditor.imgStop();
});


$("body").bind("mousemove",function(e){
obj.followMouse.css({left : ""+(e.pageX-4)+"px",top : ""+(e.pageY-obj.followMouse.height())+"px"});
});
$("#array").click(function(){
$("#array").html("");
for(var i=0;i<arrayH;i++){
$("#array").append("matrix["+i+"]=");
$("#array").append("[");
for(var j=0;j<arrayW;j++){
$("#array").append(matrix[i][j]+",");
}
$("#array").append("];<br> ");
}
});
obj.scale.find("div").click(function(){
var id=Number($(this).attr("id"));
var name=Number($(this).attr("name"));
var id1=id+1;
var id2=id+2;
var name1=name+1;
var name2=name+2;
if(data.flagHinder==1){
if(data.flagN==1){
$(this).html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
matrix[id][name]=1;
}else if(data.flagN==4){
$(this).html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id+"][name="+name1+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id1+"][name="+name+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id1+"][name="+name1+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
matrix[id][name]=1;
matrix[id][name1]=1;
matrix[id1][name]=1;
matrix[id1][name1]=1;
}else if(data.flagN==9){
$(this).html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id+"][name="+name1+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id+"][name="+name2+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id1+"][name="+name+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id1+"][name="+name1+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id1+"][name="+name2+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id2+"][name="+name+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id2+"][name="+name1+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
$("[id="+id2+"][name="+name2+"]").html("<img src='"+path+"/mapEditor/images/zhalan.png' />");
matrix[id][name]=1;
matrix[id][name1]=1;
matrix[id][name2]=1;
matrix[id1][name]=1;
matrix[id1][name1]=1;
matrix[id1][name2]=1;
matrix[id2][name]=1;
matrix[id2][name1]=1;
matrix[id2][name2]=1;
}
}else if(data.flagHinder==2){
if(data.flagN==1){
$(this).html("");
matrix[$(this).attr("id")][$(this).attr("name")]=0;
}else if(data.flagN==4){
$(this).html("");
$("[id="+id+"][name="+name1+"]").html("");
$("[id="+id1+"][name="+name+"]").html("");
$("[id="+id1+"][name="+name1+"]").html("");
matrix[id][name]=0;
matrix[id][name1]=0;
matrix[id1][name]=0;
matrix[id1][name1]=0;
}else if(data.flagN==9){
$(this).html("");
$("[id="+id+"][name="+name1+"]").html("");
$("[id="+id+"][name="+name2+"]").html("");
$("[id="+id1+"][name="+name+"]").html("");
$("[id="+id1+"][name="+name1+"]").html("");
$("[id="+id1+"][name="+name2+"]").html("");
$("[id="+id2+"][name="+name+"]").html("");
$("[id="+id2+"][name="+name1+"]").html("");
$("[id="+id2+"][name="+name2+"]").html("");
matrix[id][name]=0;
matrix[id][name1]=0;
matrix[id][name2]=0;
matrix[id1][name]=0;
matrix[id1][name1]=0;
matrix[id1][name2]=0;
matrix[id2][name]=0;
matrix[id2][name1]=0;
matrix[id2][name2]=0;
}
}
});
obj.setHinder.find("div").click(function(){
data.flagN=$(this).attr("si");
obj.followMouse.html("<img src='"+path+"/mapEditor/images/zhalanda.png' />");
obj.followMouse.css("display","block");
data.flagHinder=1;
obj.setHinder.css("display","none");
});
obj.setRoad.find("div").click(function(){
data.flagN=$(this).attr("si");
obj.followMouse.html("<img src='"+path+"/mapEditor/images/huifu.png' />");
obj.followMouse.css("display","block");
data.flagHinder=2;
obj.setRoad.css("display","none");
});
});

...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cddhy 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liaohui_1018 的回复:]

那么多循环和判断,肯定会比较慢了
具体实现了什么也看不着,楼主很强大,看花眼了,O(∩_∩)O~
[/Quote]

当然html没贴出来,所以实现什么功能你不知道。
我也不能贴出来啊,贴出来就是泄漏公司机密了。
cddhy 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 am 的回复:]

建议优化,写一些方法调用
[/Quote]
我就是不知道怎么优化啊。方法调用?我上面有方法调用啊。
你说的方法调用是什么啊?举个例子?
liaohui_1018 2011-05-17
  • 打赏
  • 举报
回复
那么多循环和判断,肯定会比较慢了
具体实现了什么也看不着,楼主很强大,看花眼了,O(∩_∩)O~
am 2011-05-17
  • 打赏
  • 举报
回复
建议优化,写一些方法调用

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧