【asp源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了asp源码-其实我一点也不开心——就改源代码而言 - 互联网的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
其实我一点也不开心——就改源代码而言 其实我一点也不开心——就改源代码而言 2011年05月03日 转一段回复说给那些只会“改代码”的懒惰程序员听 -------------------------------------------------- ------------------- 另外再提醒你一下关于
ASP代码网上流传的那些代码不见得代码质量是很好的。
有些代码写得相当烂。
作为初学者还是要以自己编程为主。
你只有在实践中明白了各种Web应用的设计看别的的代码才不会晕。
打个比方初学C语言的人都是从类似于Hello world之类的很初级的练习起步的。
没听说哪个C语言的初学者上来就看Linux源代码的。
虽然人家的代码质量确实很牛但你本身没有相当的水平当然看不懂。
但是说到
ASP的学习我发现很多人自己还不知道怎么设计一个成型的Web程序呢先学会了抄。
抄别人现成的代码然后再改Bug百出出了问题自己也晕晕乎乎但是反正基本能运行就行了什么代码质量什么代码安全什么原理什么设计思想全都滚到一边去老子只要会改就行。
这样就形成了一种很怪的现象很多写
ASP的初级程序员他的工作就是改别人的代码。
而且胆子极大连人家的代码读都没读动就敢直接拿来照搬。
什么新闻发布系统、论坛系统再大的程序只要网上能找得到现成的就没有他们改不了的。
可是一旦有一天你让他们自己写段程序比如就是简简单单写个留言板都写不好代码写得惨不忍睹。
我不知道你们在学
ASP之前都学了些什么我是1998年夏天开始学
ASP的在学
ASP之前我自学了一年的C语言、数据结构曾经在DOS下写过一个仿 Win95的DOS Shell曾经写过Hook 鼠标中断、键盘中断之类的程序曾经在一年的时间里经常用Basic语言写一些小程序曾经用Basic语言给我们学院的土木工程系写过一些工程计算的实用小工具。
那个时候Windows才刚刚被人们所熟悉很多人的电脑上装的操作系统还是Dos 6.22、UCDOS、WPS for DOS、Foxbase、CCED。
即使我在开始学
ASP编程以前曾经有过这些编程经验对于
ASP我也是踏踏实实从最基础学起的。
每一个VBScript函数的用法、页面上的每一个验证表单输入的JavaScript脚本、每一个HTML标签以及
ASP程序跟IIS交互的基本原理这些我都踏踏实实地一步一步学过。
毕业后我有几年的时间专职做
ASP方面的开发从1998年开始学
ASP并给学校写一个宿舍管理系统到2006年初作为博客网的架构师和技术经理我不能说在这七年多的时间里我没有用过别人的代码我也用过类似于MD5.
asp之类的现成的函数我也用过开源的CMS但是我工作中超过95的代码都是我自己一行一行在键盘上敲出来的不是上别人的代码里直接Ctrl-C、Ctrl-V粘贴过来的。
而且对于外来的一些代码我也不是没有借鉴过但都是看懂它的源代码然后自己去实现。
有时候外来的一些代码结构非常混乱我辛辛苦苦地进行整理最后我自己写出来的是完全经过自己消化掌握的、结构井井有条的高质量的代码。
我实在不知道你们这些皮毛都没学会就开始剽窃别人的代码、靠改别人的代码而不是自己从头设计的一些
ASP Coder你们的脑子里每天都在学些什么。
自己动脑子学自己动脑子设计程序自己动脑子分析代码这些都是提高技术的实实在在的手段说起来你们也都知道就是自己不能多下功夫。
往往越是技术好的程序员越肯下功夫钻研倒是那些技术不好的程序员反而自己不行还懒得学。
只会改别人的代码的家伙们好好醒醒吧。
搞技术从来都不是容易的事不愿动脑子不愿下功夫的人趁早滚出程序员圈子喜欢动脑子、喜欢钻研的人欢迎你留下哪怕你再笨、基础再差如果真的是喜欢钻研而且很刻苦的人你成为技术高手只是时间问题。
今天心情好多跟你啰嗦几句不要以为我每天都有这份闲心。
想要我的QQ号然后发
ASP程序让我替你分析的人死了这份心吧。
哥每天看C、看C、看Windows API都看不过来没有那份闲心看你发过来的结构混乱得一塌糊涂的
ASP。
而且哥现在偶尔上QQ都上Web QQ哥本机不装QQ你发文件哥也不方便接收。
如果诚心想跟哥学习程序设计学习扎扎实实的编程思想和开发经验哥每天在论坛里恭候你。
-------------------------------------------------- ---------------------------- 其实很不想说我什么也不会也许可以安慰自己说你肯学就很不错了可是难免失落被别人否定和被自己否定那个也不好过上面那个人说的很对只会照搬还不如趁早滚蛋要有自己的技术和思想我辗转反侧两个多小时不曾睡就是不想放弃不想等别人say youd better quit...对于团队没有价值的人我们不需要。
。
。
。
。
可是我真的很想学... -------------------------------------------------- ------------------- 最近统计了下发现大学里自己居然都没有做过什么那么以后自己要如何让自己立足 -------------------------------------------------- --------------------- 我就和你拼了吧。
js // JavaScript Document // JavaScript Document //在鼠标显示一个层该层的内空为div2的内容 function showdivdivname var div3 document.getElementByIdx_xdivname //将要弹出的层 div3.style.displayquotblockquot //div3初始状态是不可见的设置可为可见 //window.event代表事件状态如事件发生的元素键盘状态鼠标位置和鼠标按钮状. //clientX是鼠标指针位置相对于窗口客户区域的 x 坐标其中客户区域不包括窗口自身的控件和滚动条。
div3.style.leftevent.clientX10 //鼠标目前在X轴上的位置加10是为了向右边移动10个px方便看到内容 div3.style.topevent.clientY5 div3.style.positionquotabsolutequot //必须指定这个属性否则div3层无法跟着鼠标动 //var div2 document.getElementByIdx_xdiv2 //div3.innerTextdiv2.innerHTML //关闭层div3的显示 function closedivdivname var div3 document.getElementByIdx_xdivname//js通过访问divname的ID来访问div3 div3.style.displayquotnonequot function winshowpagenamewh//应该是调用窗口显示弹出层的样式宽度高度 window.openpagenamenullquotwidthquotwquotheightquothquot 总算搞明白他在写什么了 function checkboxobjnum//obj是目标文件check树应该是在查找目标累计 var id//定义ID循环查找 for i1iltnumi idobji//没找到就移到下一个找 ifdocument.getElementByIdx_xid.checkedquotquot document.getElementByIdx_xid.checkedquotcheckedquot/ /如果鼠标点击的就是找到的这个就显示否则就为空 else document.getElementByIdx_xid.checkedquotquot 就是这段让我生不如死的代码 我就一点点解读 记住要有自己的技术和思想 不懂可以学 -------------------------------------------------- ------------- 解读function VB Function关键字 Function是包含在Function和End Function之间的一组VBScript语句。
Function函数与Sub过程类似。
但 Function函数可以有返回值。
可以使用参数。
如果 Function函数没有任何参数则 Function语句必须要包含空括号。
Function函数通过函数名返回一个值。
返回值的数据类型是Variant. 语法 Function 函数名 参数1参数2... ... End Function 在脚本语言javascript中function是顶一个函数的关键字通常形态是 function 函数名参数1 参数2 函数体 return 返回值 其中也可以不返回值。
window.open支持环境 JavaScript1.0/JScript1.0/Nav2/IE3/Opera3 基本语法 window.openpageURLnameparameters 其中 pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数各参数用逗号分隔 window.openurl name features replace Arguments - 参数 url 可选字符串参数指向要在新窗口中显示的文档的URL。
如果省略该参数或者参数为空字符串新窗口不会显示文档。
name 可选字符串参数该参数可以设置新窗口的名称。
相同name的窗口只能创建一个要想创建多个窗口则name不能相同。
features 可选字符串参数该参数用于设定新窗口的功能。
因为该参数是可选的如果没有指定该参数新窗口有所有的标准功能。
replace 可选 布尔参数设置新窗口中的操作历史的保存方式。
true - 创建新历史记录 false - 替换旧的历史记录 ltSCRIPT LANGUAGEquotjavascriptquotgt lt-- window.open page.html --gt lt/SCRIPTgt 因为着是一段javascripts代码所以它们应该放在ltSCRIPT LANGUAGEquotjavascriptquotgt标签和lt/scriptgt之间。
lt-- 和 --gt是对一些版本低的浏览器起作用在这些老浏览器中不会将标签中的代码作为文本显示出来。
要养成这个好习惯啊。
window.open page.html 用于控制弹出新的窗口page.html如果page.html不与主窗口在同一路径下前面应写明路径绝对路径http://和相对路径../均可。
用单引号和双引号都可以只是不要混用。
这一段代码可以加入HTML的任意位置ltheadgt和lt/headgt之间可以ltbodygt间lt/bodygt也可以越前越早执行尤其是页面代码长又想使页面早点弹出就尽量往前放。
下面再说一说弹出窗口的设置。
只要再往上面的代码中加一点东西就可以了。
我们来定制这个弹出的窗口的外观尺寸大小弹出的位置以适应该页面的具体情况。
参数解释 ltSCRIPT LANGUAGEquotjavascriptquotgt js脚本开始 window.open 弹出新窗口的命令 page.html 弹出窗口的文件名 newwindow 弹出窗口的名字不是文件名非必须可用空代替 height100 窗口高度 width400 窗口宽度 top0 窗口距离屏幕上方的象素值 left0 窗口距离屏幕左侧的象素值 toolbarno 是否显示工具栏yes为显示 menubarscrollbars 表示菜单栏和滚动栏。
resizableno 是否允许改变窗口大小yes为允许 locationno 是否显示地址栏yes为允许 statusno 是否显示状态栏内的信息通常是文件已经打开yes为允许 lt/SCRIPTgt js脚本结束 下面是一个完整的代码。
lthtmlgt ltheadgt ltscript LANGUAGEquotJavaScriptquotgt lt-- function openwin window.open quotpage.htmlquot quotnewwindowquot quotheight100 width400 toolbar no menubarno scrollbarsno resizableno locationno statusnoquot //写成一行 //--gt lt/scriptgt lt/headgt ltbody onloadquotopenwinquotgt 任意的页面内容... lt/bodygt lt/htmlgt 这里定义了一个函数openwin函数内容就是打开一个窗口。
在调用它之前没有任何用途。
怎么调用呢 方法一ltbody onloadquotopenwinquotgt 浏览器读页面时弹出窗口 方法二ltbody onunloadquotopenwinquotgt 浏览器离开页面时弹出窗口 方法三用一个连接调用 lta hrefquotquot onclickquotopenwinquotgt打开一个窗口lt/agt 注意使用的“”是虚连接。
方法四用一个按钮调用 ltinput typequotbuttonquot onclickquotopenwinquot valuequot打开窗口quotgt 对源代码稍微改动一下 ltscript LANGUAGEquotJavaScriptquotgt lt-- function openwin window.open quotpage.htmlquot quotnewwindowquot quotheight100 width100 top0 left0toolbarno menubarno scrollbarsno resizableno locationn o statusnoquot//写成一行 window.open quotpage2.htmlquot quotnewwindow2quot quotheight100 width100 top1 00 left100toolbarno menubarno scrollbarsno resizableno loca tionno statusnoquot//写成一行 //--gt lt/scriptgt 为避免弹出的2个窗口覆盖用top和left控制一下弹出的位置不要相互覆盖即可 。
最后用上面说过的四种方法调用即可。
注意2个窗口的namenewwindows和newwindow2不要相同或者干脆全部为空。
如下代码加入主窗口ltheadgt区 ltscript languagequotjavascriptquotgt lt-- function openwin window.openquotpage.htmlquotquotquotquotwidth200height200quot //--gt lt/scriptgt 加入ltbodygt区 lta hrefquot1.htmquot onclickquotopenwinquotgtopenlt/agt即可。
下面我们再对弹出的窗口进行一些控制效果就更好了。
如果我们再将一小段 代码加入弹出的页面注意是加入page.html的HTML中可不是主页面中否则 ...让它10秒后自动关闭是不是更酷了 首先将如下代码加入page.html文件的ltheadgt区 ltscript languagequotJavaScriptquotgt function closeit setTimeoutquotself.closequot10000 //毫秒 lt/scriptgt 然后再用ltbody onloadquotcloseitquotgt 这一句话代替page.html中原有的ltBODYgt这一句就可以了。
这一句话千万不要忘记写啊这一句的作用是调用关闭窗 口的代码10秒钟后就自行关闭该窗口。
【7、在弹出窗口中加上一个关闭按钮】 ltFORMgt ltINPUT TYPEBUTTON VALUE关闭 onClickwindow.closegt lt/FORMgt 呵呵现在更加完美了 【8、内包含的弹出窗口-一个页面两个窗口】 上面的例子都包含两个窗口一个是主窗口另一个是弹出的小窗口。
通过下面的例子你可以在一个页面内完成上面的效果。
lthtmlgt ltheadgt ltSCRIPT LANGUAGEquotJavaScriptquotgt function openwin OpenWindowwindow.openquotquot quotnewwinquot quotheight250 width250toolbarno scrollbarsquotscrollquotmenubarnoquot //写成一行 OpenWindow.document.writequotltTITLEgt例子lt/TITLEgtquot OpenWindow.document.writequotltBODY BGCOLORffffffgtquot OpenWindow.document.writequotlth1gtHellolt/h1gtquot OpenWindow.document.writequotNew window openedquot OpenWindow.document.writequotlt/BODYgtquot OpenWindow.document.writequotlt/HTMLgtquot OpenWindow.document.close lt/SCRIPTgt lt/headgt ltbodygt lta hrefquotquot onclickquotopenwinquotgt打开一个窗口lt/agt ltinput typequotbuttonquot onclickquotopenwinquot valuequot打开窗口quotgt lt/bodygt lt/htmlgt 看看OpenWindow.document.write里面的代码不就是标准的HTML吗只要按照 格式写更多的行即可。
千万注意多一个标签或少一个标签就会出现错误。
记得用 OpenWindow.document.close结束啊。
【9、终极应用--弹出的窗口之Cookie控制】 回想一下上面的弹出窗口虽然酷但是有一点小毛病沉浸在喜悦之中一定 没有发现吧比如你将上面的脚本放在一个需要频繁经过的页面里例如首页那么每次刷新这个页面窗口都会弹出一次是不是非常烦人:- 有解决的办法吗Yes - Follow me.我们使用cookie来控制一下就可以了。
首先将如下代码加入主页面HTML的ltHEADgt区 ltscriptgt function openwin window.openquotpage.htmlquotquotquotquotwidth200height200quot function get_cookieName var search Name quotquot var returnvalue quotquot if document.cookie.length gt 0 offset document.cookie.indexOfsearch if offset -1 offset search.length end document.cookie.indexOfquotquot offset if end -1 end document.cookie.length returnvaluedocument.cookie.substringoffset end return returnvalue function loadpopup if get_cookiepopped openwin document.cookiequotpoppedyesquot lt/scriptgt 然后用ltbody onloadquotloadpopupquotgt注意不是openwin而是loadpop啊替换主页面中原有的ltBODYgt这一句即可。
你可以试着刷新一下这个页面或重新进 入该页面窗口再也不会弹出了。
真正的Pop-Only-Once 写到这里弹出窗口的制作和应用技巧基本上算是完成了 对于Javascript中checkbox树的功能扥多人还不是很了解究竟checkbox树有何作用希望本文能对大家有所帮助。
研究了几天终于搞出自己的树来。
总结一下留待以后改进用。
作为UI控件的树与数据结构的树有很大的不同它分为根节点枝节点与叶节点。
根节点有子树并不隶属于其他树。
枝节点有子树并作为某一子树的节点而存在。
叶节点只作为某一子树的节点而存在并且没有子树。
但仅是这样无法绘制树的。
我们看下面的图树在网页中无论样子如何从上到下都是一行行分开的。
每一行都有几张图片与文本。
这些图片大致分三类一是虚线图标与加号图标与减号图标我把它们统称为连线图标二是装饰用的文件夹图标或者根节点的那个地球或者叶子节点的文档或者类似的电脑、苹果、回收站等等我称之为装饰图标最后是checkbox它分三种状态。
图标的种类如此多仅是根枝叶加关闭展开这两种状态也只是六种可能因此我们还得把枝节点细分为普通枝与末枝叶节点也一样。
由于连线图标与装饰图标的作用很相似装饰图标好像是从视觉上强调点击连线图标会出现的效果因此我们可以用CSS把它们整合到一起以节省一个DOM。
我们单独拿根节点分析。
表面上它有三个图标一个文本实质上只有两个图标第二作为第一个的背景而存在文本位于span元素中。
如果想点击文字跳转也可以换成A元素。
此外还隐藏最后一个DIV元素。
它是用于装载子树与缩进子树的。
这四个元素都位于一个DIV中我把它称之为根节点并设置index属性用于与原数据相比较取得父节点的index。
接着我们给图标加入一些识别要素这对样式表控制还是事件绑定都很有无用因为仅仅是一个index是非常乏力的。
当我们点击连线图标那个加号或减号我们怎样让程序知道是点击了它呢我们给它一个className为collapse与unfold。
只要有这两个类之一我们就重设它的className原来是collapse就改成unfold反之亦然然后再更换其src以达到切换图片的目的。
它后面的装饰图标是用样式表控制内部样式因此当className变了它会reflow重新渲染页面。
难点在checkbox当点击它时会有一连串反应更换其父级节点的checkbox更换自身再更换其子孙。
它有三种状态对应三个className。
0为子孙元素无选中1为子孙元素全选中2为子孙元素部分选中。
算法非常复杂渲染也非常复杂如img为checkbox图标它的parentNode才为树的节点元素如果它非根节点那它肯定还被一个DIV包裹着img.parentNode.parentNode.parentNode才为其上级的树节点元素这个节点的第二个IMG元素就是它顶上的那个checkbox。
要访问其下级的checkbox就更复杂了总之多处用到递归自己看
源码吧。
由于没有学过数据结构与算法实现有点劣拙功能这么少也得一百五十行惭愧万分。
bug也无法自排因此请勿用于商用后果自负。
---------------------------------菜鸟调试 1标签 script 中缺少以下必需属性typeXHTML 1.0 Transitional 解决ltscript typequottext/javascriptquotgt 2标签“iframe”在当前活动版本中不具有属性“hspace”。
XHTML 1.0 Transitional iframe是框架的一种形式也比较常用到。
Iframe用法精析 ltiframe frameborder0 width170 height100 marginheight0 marginwidth0 scrollingno srcquotmove-ad.htmquotgtlt/iframegt ltIFRAMEgt用于设置文本或图形的浮动图文框或容器。
BORDER ltIFRAME BORDERquot3quotgtlt/IFRAMEgt 设定围绕图文框的边缘宽度 FRAMEBODER ltIFRAME FRAMEBODERquot0quotgtlt/IFRAMEgt 设置边框是不否为3维0否1是 HEIGHTWIDTH ltIFRAME HEIGHTquot31quot WIDTHquot88quotgtlt/IFRAMEgt 设质边框的宽度和高度 SCROLLING ltIFRAME SCROLLINGquotNOquotgtlt/IFRAMEgt 是否有滚动条YESNOAUTO SRC ltIFRAME SRCquotGIRL.GIFquotgtlt/IFRAMEgt 指定IFRAME调用的文件或图片HTMLHTMGIFJPEGJPGPNGTXT. 标记 描述 HTML5标准 ltbasegt 定义页面中所有链接的基准URL lttitlegt 设定显示在浏览器左上方的标题内容 ltisindexgt 表明该文档是一个可用于检索的网关脚本 不支持 ltmetagt 文档本身的元信息例如查询关键词有.