尽管接触大大小小项目N多个,但是刚入行两年,

撸码还是没有完全成一定的规律;最近受到很多启发,打算沉淀沉淀自己的代码;

之前很多页面的很多js脚本本分代码,更注重效果,事件久后没有发展 性能也是很关键的一部分;

之前接触的大多是网站微站门户app的项目,从某种角度来讲   一次(多次)成型后就上线了,不注重逻辑层是否真的合理,精简;

自从接触平台类型项目    结构层  、表示层、行为层的优化一个比一个重要。

逻辑层代码需要提高注意的地方——代码的封装及方法的兼容性。

一个非常简单的抽屉效果

<script>
$(function () {
$(".ability_content .ability_title").click(function () {
var data_state = $(this).attr("data-state");
if (data_state == 0) {
$(this).children(".icon").text("+");
$(this).attr("data-state", "1");
$(this).siblings("ul").slideUp();
} else if (data_state == 1) {
$(this).children(".icon").text("-");
$(this).attr("data-state", "0");
$(this).siblings("ul").slideDown();
}
});
})
</script>

修改之前粗糙的写法:

<script>
$(function () {
$(".toggled").click(function () {
if ($(this).parent().next().css("display") == "block") {
$(this).parent().next().slideUp(500);
$(this).html("+");
} else {
$(this).parent().next().slideDown(500);
$(this).html("-");
}
})
})
</script>

定义变量data_state能将需要做判断的属性保存到内存中,减少reflow回流     从而减轻CPU负担

同样的思路去写  信息是否保存成功的案例

<script>
$(function () {
//保存状态判断
(function () {
//获取保存状态
var hd_saveState = $("#hd_state").val();
if (hd_saveState == "0") {
//保存失败
layer.open({
type: 1
, title: "提示"
, content: "<div style='text-align:center;padding:20px;'>保存失败!</div>"
, area: ['300px', 'auto']
, btn: ['确定']
, yes: function (index, layero) {
layer.close(index);
}
});
$("#hd_state").val("-1");
} else if (hd_saveState == "1") {
//保存成功
layer.open({
type: 1
, title: "提示"
, content: "<div style='text-align:center;padding:20px;'>保存成功!</div>"
, area: ['300px', , 'auto']
, btn: ['确定']
, yes: function (index, layero) {
layer.close(index);
}
});
$("#hd_state").val("-1");
}
})();
})
</script>

检索  事件   自刷新  封装取值便捷思路:

<script>
$(function () {
$(".seach_wrap button").click(function () {
//获取姓名
var nameSearCh = $("#nameSearCh").val();
//获取学历
var EduSearch = $("#EduSearch").val();
//获取简历授权
var enPowerSearch = $("#enPowerSearch").val();
//获取简历状态
var StateSearch = $("#StateSearch").val();
window.location.href = "/Yuan/Pages/talent/Resume_management.aspx?page=0" + getpram('searchText', nameSearCh) + getpram('edu', EduSearch) + getpram('empower', enPowerSearch) + getpram('state', StateSearch);
function getpram(key, value) {
var str = "";
if (value) {
str = "&" + key + "=" + value;
}
return str;
}
});
});
</script>
可通过   getpram函数方便获取要取得四个值对应得value  并返回重载的href中。

交互部分
做前端写交互可谓家常便饭了,交互的步骤不多,但每次用起来都不一样,只是换汤不换药。但自己每次都被搞迷,接触太少,一下是整理了 关闭或发行功能按钮的交互代码:
 //关闭或发行操作
$(".oprate_wrap button").click(function () {
var thisText = $(this).text().trim();
var metaId = $(this).attr("data-mid");
if (thisText != "查看") {
postOprate(metaId, thisText, $(this)); // postOprate 函数包含三个对象组成部分 如下:
}
}); /**
* 根据metaId和操作类型 进行 智券的发行或者关闭
* @param metaId
* @param oprateText
*/
function postOprate(metaId, oprateText, clickObj) {
var data = {
"mid": metaId,
"state": oprateText
}
data = JSON.stringify(data);
$.ajax({
type: "post",
url: "/Yuan/Pages/talent/Coupon_management.aspx/Product_UpdateSate",
//data: JSON.stringify(obj),
data: "{ 'data': '" + data + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data) {
if (data.d) {
var getDatas = data.d.split("*");
if (getDatas[0] == 0) {
pop(getDatas[1]);
} else if (getDatas[0] == 1) {
pop(getDatas[1]);
if (oprateText == "关闭") {
clickObj.html("发行");
} else {
clickObj.html("关闭");
}
}
}
},
error: function (data) {
console.log(data)
pop(oprateText + "失败!");
}
})
}
												

如何优化自己的JS代码的更多相关文章

  1. JS代码的简单重构与优化

    JS代码的简单重构与优化(适合新手) 原文  http://www.cnblogs.com/similar/p/5016424.html Demo . 1 //bad if (age > 20) ...

  2. 也谈谈规范JS代码的几个注意点

    也谈谈规范JS代码的几个注意点 写JS代码差不多也有两年了吧,从刚开始的“初生牛犊不怕虎”乱写一通到后来也慢慢知道去规范一下自己写的代码.这种感觉就像是代码是你的作品,你希望它保持一份不仅干净而且也优 ...

  3. 最新的JavaScript核心语言标准——ES6,彻底改变你编写JS代码的方式!【转载+整理】

    原文地址 本文内容 ECMAScript 发生了什么变化? 新标准 版本号6 兑现承诺 迭代器和for-of循环 生成器 Generators 模板字符串 不定参数和默认参数 解构 Destructu ...

  4. 编写高质量JS代码的68个有效方法(七)

    [20141220]编写高质量JS代码的68个有效方法(七) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  5. 编写高质量JS代码的68个有效方法(四)

    [20141129]编写高质量JS代码的68个有效方法(四) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...

  6. 原始的js代码和jquery对比

    Even a task as simple as this can be complicated without jQuery at our disposal. In plain JavaScript ...

  7. JS代码的几个注意点规范

    也谈谈规范JS代码的几个注意点 也谈谈规范JS代码的几个注意点 写JS代码差不多也有两年了吧,从刚开始的“初生牛犊不怕虎”乱写一通到后来也慢慢知道去规范一下自己写的代码.这种感觉就像是代码是你的作品, ...

  8. 四十年前的 6502 CPU 指令翻译成 JS 代码会是怎样

    去年折腾的一个东西,之前 blog 里也写过,不过那时边琢磨边写,所以比较杂乱,现在简单完整地讲解一下. 前言 当时看到一本虚拟机相关的书,正好又在想 JS 混淆相关的事,无意中冒出个问题:能不能把某 ...

  9. 试着讲清楚:js代码运行机制

    一. js运行机制 js执行引擎 经常看文章的说到js是带线程的,其实这个说法非常的模糊,准确的是js执行引擎是单线程的,js执行引擎就是js代码的执行器,有了这个概念就可以下来说说js是如何运行的了 ...

随机推荐

  1. Exchange Onine 公用文件夹

    公用文件夹专为共享访问设计,为收集.组织信息及工作组织中的其他人共享信息提供提供了一种轻松.有效的方式.公用文件夹帮助以易于浏览的层次结构来组织内容. 一.公用文件夹的适用环境 公用文件夹在以下out ...

  2. css后续篇

    5.盒模型 在css中,box model这一术语是用来设计和布局时使用的,在网页中显示一些方方正正的盒子,这种盒子就叫盒模型 盒模型有两种: 标准模型和IE模型(了解) 盒模型属性 width : ...

  3. logback日志大量写磁盘导致微服务不能正常响应的解决方案

    最近几天,遇到一个莫名其妙的问题,每天几乎同一时段微服务自己跑着跑着就假死了,过几个小时就又自动恢复了. 通过对定时任务.网卡.内存.磁盘.业务日志的排查分析,只有磁盘的IO在假死前一段时间偏高,经查 ...

  4. 关于mysql的符合主键的定义和解释

    DROP TABLE IF EXISTS `v9_vote_data`;CREATE TABLE `v9_vote_data` (  `userid` mediumint(8) unsigned DE ...

  5. peculiar|retreated|civilize|conceivable

    ADJ-GRADED 奇怪的:古怪的:不寻常的If you describe someone or something as peculiar, you think that they are str ...

  6. C语言返回值

    C语言函数在结束的时候可以用一个数字表示运行的结果,这个数字就叫做函数的返回值. 主函数应该有一个返回值.如果这个返回值是0就表示程序希望计算机认为它正常结束,如果不是0就表示程序希望计算机认为它是出 ...

  7. SQL update 关联更改,内部需要引用表名

    select A.Id,A.Email,( select C.Email from [nopCommerce].[dbo].[Customer] C left join [nopCommerce].[ ...

  8. CHI 2015大会:着眼于更加个性化的人机交互

    2015大会:着眼于更加个性化的人机交互" title="CHI 2015大会:着眼于更加个性化的人机交互"> 本周,人机交互领域的顶级盛会--2015年ACM C ...

  9. 利用Load命令将本地文本里面的数据导入到MySQL数据库

    摘要:在使用MySQL是我们可能会遇到要向我们的表中插入大量的数据如果都使用以下的语句在命令行输入有点不太切实际,幸好MySQL为我们提供了LOAD命令可以批量的从本地文件向MySQL表中导入数据! ...

  10. 如何设计一个LRU Cache

    如何设计一个LRU Cache? Google和百度的面试题都出现了设计一个Cache的题目,什么是Cache,如何设计简单的Cache,通过搜集资料,本文给出个总结. 通常的问题描述可以是这样: Q ...