零碎基础知识
1.document节点没有父元素
例如: <div><span>dfd</span><div>
document.getElementsByTagName('span')[0].parentNode;//表示选中DIV
2.
<script type="text/javascript">
function tdclick(){
if(event.srcElement.tagName.toLowerCase()=='td')
alert("行:"+(event.srcElement.parentNode.rowIndex+1)+"列:"+(event.srcElement.cellIndex+1));
}
</script>
event.srcElement从字面上可以看出来有以下关键字:事件,源。
他的意思就是:当前事件的源,
我们可以调用他的各种属性 就像:document.getElementById("")这样的功能,
经常有人问 firefox 下的 event.srcElement 怎么用,在此详细说明:
IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcElement属性.但他们的作用是相当的,即:
firefox 下的 event.target = IE 下的 event.srcElement。
3.有序列表: <ol> <li>……</li> <li>……</li> <li>……</li> </ol>
表现为:
1……
2……
3…… .
ul无序列表,表现为 li 前面是大圆点而不是 123: <ul> <li>……</li> <li>……</li> </ul>.
很多人容易忽略 dl dt dd 的用法:
dl 内容块 dt 内容块的标题 dd 内容
可以这么写:
<dl>
<dt>标题</dt>
<dd>内容 1</dd>
<dd>内容 2</dd>
</dl>
dt 和 dd 中可以再加入 ol ul li 和 p
4.
设置code属性
($(this).attr("code") == Code)
设置class属性
$(this).attr("class", "curron");
对ID为area_list标签下的input标签分别执行函数
$("#area_list input").each(function ()
{
if ($(this).attr("checked") != undefined)
{ acode += encodeURIComponent($(this).attr("code")) + ","; flag++; }
});
5.Container是GridView的一行,而Container.DataItem是这一行所绑定的数据
6.<%=后台定义的值%>
<%#绑定的值%>
<asp:Repeater runat="server" ID="rptRelationNone">
<ItemTemplate>
<a href="/Search.aspx?cid=<%=CityId %>&kw=<%# Uri.EscapeDataString(Container.DataItem.ToString()) %>">
<%#Eval("Name") %>
<%# Container.DataItem%>
</a>
</ItemTemplate>
</asp:Repeater>
7.应用程序池就好比应用程序域一样,一个应用程序池可以容纳多个网站,只要这个应用程序池挂了,里面的网站都挂了,但其他应用程序池里的网站还会正常运行.
8.设置array的遍历属性(是一个函数)
Array.prototype.contains = function (obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; }
使用
if (!areaCodeArray.contains($(this).attr("code"))) {
$(this).attr("checked", false);
}
9.exists是用loop的方式,循环的次数影响大,外表要记录数少,内表就无所谓了
in用的是hash join,所以内表如果小,整个查询的范围都会很小,如果内表很大,外表如果也很大就很慢了,这时候exists才真正的会快过in的方式。
外表大内表小用IN,外表小内表大用EXISTS,这是一个实用的概略评估方法,在大部分的情况下是适用的。
若不存在
if @HaveCourseIntro='0'
begin
set @sql+='and not exists(select 1 from Guidance_CourseIntroduction where
Guidance_CourseIntroduction.CourseCode=Toft_Class.CourseProductCode)'
end
若存在
if @HaveCourseIntro='1'
begin
set @sql+=' and exists(select 1 from Guidance_CourseIntroduction where
Guidance_CourseIntroduction.CourseCode=Toft_Class.CourseProductCode)'
end
10.执行存储过程(带上具体参数),“消息”中显示具体的执行语句。
11.autocomplete属性可以阻止浏览器对文本框的自动补全功能。
12.Rank Over()排序122345,cast(@IsPublish as nvarchar(256))强制转换。
13.Attributes是Microsoft .NET Framework文件的元数据,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。Property属性是面向对象编程的基本概念,提供了对私有字段的访问封装,在C#中以get和set访问器方法实现对可读可写属性的操作,提供了安全和灵活的数据访问封装。
14.包就是在另一个作用域中保存了一份它从上一级函数或作用域取得的变量(键值对),而这些键值对是不会随上一级函数的执行完成而销毁。闭包就是“属性表”,闭包就是一个数据块,闭包就是一个存放着“Name=Value”的对照表。就这么简单。但是,必须强调,闭包是一个运行期概念。
15.IQueryable和IEnumerable都是延时执行(Deferred Execution)的,而IList是即时执行(Eager Execution),IQueryable和IEnumerable在每次执行时都必须连接数据库读取,而IList读取一次后,以后各次都不需连接数据库。前两者很容易造成重复读取,性能低下,并且可能引发数据不一致性,IQueryable和IEnumerable的区别:IEnumberable使用的是LINQ to Object方式,它会将AsEnumerable()时对应的所有记录都先加载到内存,然后在此基础上再执行后来的Query。所以上述TestIEnumerable例子中执行的SQL是"select top(5) ...",然后在内存中选择前两条记录返回。基于性能和数据一致性这两点,我们使用IQueryable时必须谨慎,而在大多数情况下我们应使用IList。当你打算马上使用查询后的结果(比如循环作逻辑处理或者填充到一个table/grid中),并且你不介意该查询会即时执行,使用ToList(),当你希望查询后的结果可以供调用者(Consummer)作后续查询(比如这是一个"GetAll"的方法),或者你希望该查询延时执行,使用AsQueryable().
16.arraylist添加实例,ArrayList中将所有元素都看成Object类型的,是引用类型,会进行拆装箱,最好直接用泛型list。非泛型集合-System.Collections名字空间中的类主要包括ArrayList, Hashtable,Queue,SortedList,Stack等,而泛型集合-System.Collections.Generic中常用的包括List<T>,LinkedList<T>,Queue<T>,Stack<T>。
17.IList<> list = new List<>();
18.ArrayList和hashtable改用list<t>泛型和dictionary<key,value>.
19.Eval某一字段 需要进行判断是否为空。
2、HttpContext.Cache 是对上述缓存类的封装,由于封装到了 HttpContext ,局限于只能在知道 HttpContext 下使用,即只能用于 Web 应用。