标签:存在 val 负载 sdn 唯一性 构造 间接 恢复 常见
1. js 的闭包概念
闭包的定义:当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。
例子:
function A(){ function B(){ console.log(‘Hello Closure!‘); } return B; } var C = A(); C();// Hello Closure!
分析一下:
用途:
先了解一下 Javascript 中的 GC 机制:
在 Javascript 中,如果一个对象不再被引用,那么这个对象就会被 GC 回收,否则这个对象一直会保存在内存中。
在上述例子中,B 定义在 A 中,因此 B 依赖于 A ,而外部变量 C 又引用了 B , 所以A间接的被 C 引用。
也就是说,A 不会被 GC 回收,会一直保存在内存中。
原文链接:https://www.cnblogs.com/onepixel/p/5062456.html
2.Jquery 如何实现动态事件绑定?
语法:
$(selector).on(event,childSelector,data,function,map)
event:必需。规定要从被选元素移除的一个或多个事件或命名空间。
childSelector:可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。
data:可选。规定传递到函数的额外数据。
function:可选。规定当事件发生时运行的函数。
注意:使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
$(‘.class‘).on("click",function(){……});相当于$(‘.class‘).bind("click",function(){……});
3.了解SQL注入?怎么样避免?
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
归纳一下,主要有以下几点:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双引号进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
可参考此文:https://www.cnblogs.com/sdya/p/4568548.html
4.redis 和cache 的区别?
1、 Redis和cache都是将数据存放在内存中,都是内存数据库。不过cache还可用于缓存其他东西,例如图片、视频等等。
2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3、虚拟内存-Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘
4、过期策略–cache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如业务配置进行设定
5、分布式–设定cache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从
6、存储数据安全–cache挂掉后,数据没了;redis可以定期保存到磁盘(持久化)
7、灾难恢复–cache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复
8、Redis支持数据的备份,即master-slave模式的数据备份。
5.C#中,const 和 readonly 的区别?
1.常量必须在声明时就被初始化,指定了值后就不能修改了.只读字段可以在声明时被初始化,也可以在构造函数中指定初始化的值,在构造以后值就不能修改.
2.常量是静态的,而只读字段可以是静态和动态的
3.Const可以用在字段和局部变量,readonly只可以修饰字段
6.怎么建索引,注意点在哪?好处?
创建索引的好处
①通过创建索引,可以在查询的过程中,提高系统的性能
②通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
③在使用分组和排序子句进行数据检索时,可以减少查询中分组和排序的时间
创建索引的坏处
①创建索引和维护索引要耗费时间,而且时间随着数据量的增加而增大
②索引需要占用物理空间,如果要建立聚簇索引,所需要的空间会更大
③在对表中的数据进行增加删除和修改时需要耗费较多的时间,因为索引也要动态地维护
应该在哪些列上创建索引呢
①经常需要搜索的列上
②作为主键的列上
③经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度
④经常需要根据范围进行搜索的列上
⑤经常需要排序的列上
⑥经常使用在where子句上面的列上
不应该在哪些列上创建索引
①查询中很少用到的列
②对于那些具有很少数据值的列.比如人事表的性别列,bit数据类型的列
③对于那些定义为text,image的列.因为这些列的数据量相当大
④当对修改性能的要求远远大于搜索性能时.因为当增加索引时,会提高搜索性能,但是会降低修改性能
详细请看此文:https://blog.csdn.net/qq_36071795/article/details/83956068
7.如何避免事务死锁?
先介绍死锁的四个必要条件(只要破坏了其中任何一个条件,死锁就不可能发生):
解决方法:
1 使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; (细化处理逻辑,执行一段逻辑后便回滚或者提交,然后再执行其它逻辑,直到事物执行完毕提交)
2 设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂;
3 优化程序,检查并避免死锁现象出现;
4 .对所有的脚本和SP都要仔细测试,在正是版本之前。
5 所有的SP都要有错误处理(通过@error)
6 一般不要修改SQL SERVER事务的默认级别。不推荐强行加锁
8. session的实现原理
A、什么是Session?
Session字面含义就是会话。由于HTTP是无状态协议,为了保持浏览器与服务器之间的联系,才有了Session。Session就是用于在服务器端保存用户状态的协议。通常用来保存用户的登录状态。
B、Session是如何实现的?
Session内容保存在服务器端的,通常是保存在内存中,当然也可以保存在文件、数据库等等。客户端跟服务器端通过SessionId来关联, SessionId通常以Cookie的形式存储在客户端。每次HTTP请求, SessionId都会随着Cookie被传递到服务器端,这行就可以通过SessionId取到对应的信息,来判断这个请求来自于哪个客户端/用户。
1、建议&经验
2、常见的Session丢失的问题
标签:存在 val 负载 sdn 唯一性 构造 间接 恢复 常见
原文地址:https://www.cnblogs.com/GuDuYing/p/11031479.html