当前位置:  编程技术>WEB前端
本页文章导读:
    ▪jQuery笔记-jQuery入门简介-老默      作者:老默 http://senir.blog.163.com (转载请注明出处) jQuery是一个js的框架。什么是框架呢?框架就是封装。以吃饭举例: 要想吃饭那么你就得买菜、洗菜、切菜、炒菜、盛菜、端菜,.........
    ▪JDNI了解      在网上看到了这样的一道题目: 下列关于使用JNDI的说法中错误的是? A、可以解决多个应用程序访问同一个资源的问题 B、可以解决跨容器访问资源的问题 C、可以解决集群环境中资源共享问.........
    ▪node.js通过msnodesql访问SQL Server      Node.js一直都与mysql , Nosql 配合使用,对于Sql  Server却没有很好的支持,一直都是小众技术人员自己编写访问程序。2012年微软公司官方发行一款Node.js访问Sql Server的驱动程序——msnodesql.........

[1]jQuery笔记-jQuery入门简介-老默
    来源:    发布时间: 2013-11-06
作者:老默 http://senir.blog.163.com (转载请注明出处)
 
jQuery是一个js的框架。
什么是框架呢?框架就是封装。
以吃饭举例:
 
要想吃饭那么你就得买菜、洗菜、切菜、炒菜、盛菜、端菜,最后就能吃到菜,而如果你到饭馆去吃饭,那么你只需要点菜,然后就等着吃饭。那么饭馆就是一种封装,也就是框架。
同样,如果你自己用js来开发,那么等同于自己做菜;如果用jQuery来开发,那么相当于饭馆点菜;
 
去饭店点菜都需要菜单,菜单就是饭馆提供给我们的接口,每个饭馆的菜单都不一样,只有菜单上有的菜你才可以点。
同样,jQuery的手册就是jQuery的菜单,这里详细列出了哪些方法可以使用;
 
饭馆分好多种,有五星级酒店,也有小饭馆;那么js的框架也分好多种,有重量级的也有轻量级的;
jQuery是js框架中的一种,其他的还有prototype等,jQuery是一个轻量级的框架,但是功能却非常犀利,所以应该是一个经济实惠且味道不错的饭馆。
 
为什么要用框架? 呵呵,想想你为什么要去饭馆就可以了。因为去饭馆省事啊,只要坐那喊过来服务员,点完菜就等着上菜就行了,一个字“省事”,为啥不是一个字呢?
同样,用jQuery可以省去很多的工作,如果用js自己开发的话可能需要巴拉巴拉敲半天,而用jQuery可能一两行代码就OK了。
 
jQuery提供了些什么菜单给我们呢?想想平常我们经常用js干的一些事是什么?
一个经常的案例是鼠标点击提交按钮的时候,对表单进行一些验证,验证通过则提交;又或者是一组tab标签,鼠标放上去的时候当前的标签要高亮,代码如下;
1 <body>
2 <div id="main">
3 <div id="like" >
4 <h2>猜你喜欢</h2>
5 <ul>
6 <li>海飞丝洗头膏</li>
7 <li >六神花露水</li>
8 <li>舒肤佳香皂</li>
9 <li>心相印纸巾</li>
10 <li>哇哈哈矿泉水</li>
11 <li>王老吉</li>
12 </ul>
13 </div>
14 <div id="hot" >
15 <h2>热门推荐</h2>
16 <ul>
17 <li>融氏橄榄油</li>
18 <li>帮宝适纸尿裤</li>
19 <li>有机大米</li>
20 <li>妙洁垃圾袋</li>
21 <li>优乐美奶茶</li>
22 <li>亲亲果冻</li>
23 </ul>
24 </div>
25 <div id="inner"></div>
26 </div>
27 <script type="text/javascript" language="javascript">
28 var hot = document.getElementById("hot");
29 var li = hot.getElementsByTagName("li");
30 for(var i in li) {
31 li[i].onmouseover = function() {
32 this.style.color = "red";
33 };
34 li[i].onmouseout = function() {
35 this.style.color = "black";
36 };
37 }
38 </script>
39 </body>

 

 总结这些经常的案例会发现,这里基本上包含三个要素:一个是事件,如onmouseover,onmouseout等,一个是选择,如document.getElementById("hot");hot.getElementsByTagName("li");等;第三个是操作,如this.style.color = "red";this.style.color = "black";等。
 
那么jQuery就是对这三个要素进行封装,提供给我们更强大的事件支持,更强大的选择器,更强大快捷的操作。
jQuery另外还提供两个强大的封装,一个是Ajax,一个是动画。
 
jQuery除了支持js原生态的事件外(写法不一样,原生态前面有on,jQuery没有on,如onmouseover对应的jQuery事件是mouseover),如click(),mouseover(),mouseout(),change(),focus(),scroll(),submit()等等,还支持事件绑定bind(),一次性事件绑定one(),解除绑定unbind(),事件委派live(),解除事件委派die(),事件切换hover(),toggle()等等,这里只做介绍,以后再详细分析。
 
jQuery的选择器非常强大,基本的如按标签名选择,如$("p")、按id号选择$("#id")、按类名选择$(".class"),这些之外还支持上下级选择$("#id p")、按序号选择$("div :first")、按属性选择$("div [name=box]")、按单属性选择$("div :hidden");$("input :checked")等等。
 
操作功能也非常强大,常用的有html(),val(),css(),attr(),append()等等,还有很多这里不一一列出。
 
还有Ajax和动画功能,非常的强大,这里具体不聊,以后单个详细分析。
简单介绍就到这里,最后贴出上面的代码用jQuery改写后的代码。
1 <script type="text/javascript" language="javascript">
2 $("#hot li").hover(
3 function() {
4 $(this).css("color","red");
5 },
6 function() {
7 $(this).css("color","black");
8 }
9 );
10 </script>

作者:老默 http://senir.blog.163.com (转载请注明出处)

本文链接


    
[2]JDNI了解
    来源: 互联网  发布时间: 2013-11-06

在网上看到了这样的一道题目:

下列关于使用JNDI的说法中错误的是?

A、可以解决多个应用程序访问同一个资源的问题
B、可以解决跨容器访问资源的问题
C、可以解决集群环境中资源共享问题

D、可以解决跨平台访问资源的问题

由于我没有了解过什么是JNDI,以前仅仅听说过这个词儿。今天看到了这样的一个题,我开始了解了JNDI。。。

下面看一个一个网友写的关于JNDI的看法,觉得挺有意思的:

======================================

 看了JNDI的实现,我感有点惊讶和一点迷惑,惊讶的是系统编程比应用编程就难度来说还真不好说,比如就象实现JNDI,SUN已经定好了Interface,你要做的就是弄清楚整个功能的原理,然后去实现他,然而应用编程则没有人为你定好Interface,你只能根据需求分析自己定好Interface,自己定好框架,但是这个框架能不能满足需求那就不好说了,但是SUN定的规范可是肯定可以实现功能的,并且一般情况下你必须全部实现接口中的每一个函数,要不然,人家说你又不符合他的规范,不能通过他的认证。好了下面我讲讲我读JNDI的经过。JNDI的规范我大概的看了一下,大概知道了JNDI是干什么用的,实际上我的理解就是JNDI是一种服务,什么样的服务呢 ,就是你给我一个字符串,我就给出对应字符串所对应的对象。那这东西有什么用呢?那我们不是经常在客户端写代码的 时候不是经常写

 Context ctx = new InitialContext();Object obj=ctx.lookup("/ejb/LotteryEJB");这样类似的代码, 如果说"/ejb/LotteryEJB"是你刚才所说的字符串的话,那obj就应该是对应的对象,夷,这怎么好象有点象EJB的调用啊, 哈,哥哥你真是冰雪聪明,这就是EJB调用开始的时候调用JNDI服务的代码。原来就是这样啊,那实现这玩意不是太容易了, 
弄一个HashMap的实例hm,把你要部署的字符和对象通过hm.put("/cs",对象)放进去,如果谁要查的时候就是把要查的字符 传过来,Object cs = hm.get("/cs"),CS就是要你要找的对象。CS?好啊,AK,M4,暴头....,我想暴头想了很久了,但是 这CS到底是我要暴头的人,还是和我一起暴头的人,还是已被我暴头的人呢?哈,告诉你吧,都是。根据JNDI的规范,这CS可以代表 对象,设备都可以,当然只要你愿意连MM都可以代表,真的,哪里有啊!我机子上好多啊---100多M的美女图片,哦我差点忘了, 文件也可以是JNDI服务所返回的东东。对了要是你问我MM图片怎么传到你的机子上面去,我只能告诉你,你可以通过socket传啊, 你传一个"/cs",我回传一个cs给你,就这么简单。好了,如果到目前为止你只对我的100M图片感兴趣的话呢,那你就不要往下看了, 你给我发E-MAIL,我告诉你哪里还有好多。 org.huihoo.jfox.jndi下面的ContextImpl是实现Context接口,但是很这个类不是实现真正JNDI功能的类,真正实现该功能就是 NamingServiceImpl类,NamingService不是SUN规范所规定的接口,但是他的函数和Context接口差不多,也就是说完成的是和 Context接口的功能差不多。也就是说NamingServiceImpl才是JNDI服务的提供者,而Context是客户端去调用JNDI服务的接口,那提起 服务的实现那大家都自然都想起了多线程,就想起了一个孤独的socket的实例fox在不停的listen,listen啊,但是他怎么等不到 "我要嫁给你"的字符串!fox不止一次的怀疑自己的实现的Runnable接口是否为倒版,并且还怀疑对方是不是找对了IP而发错了端口。 所以说为了能更好提供JNDI服务,NamingServiceImpl决定把自己交给ServiceWrapper包装一下,然后再对外发布,要知道ServiceWrapper 专门为守侯线程所设计,面对各种各样的的请求,都能抓住处理掉,并且面对各种请求都能一一满足。现在我只希望ServiceWrapper能够 满足我一种请求那就是--有没有吃的,我好饿!有没有人请吃饭啊!我饿死了!

============================

下面是http://www.ibm.com中的一篇文章:

题目:

JNDI 在 J2EE 中的角色
简介: 掌握 J2EE 是件令人生畏的事,因为它包含的技术和缩略语在不断地增长。Java 命名和目录接口(Java Naming and Directory Interface,JNDI)从一开始就一直是 Java 2 平台企业版(JEE)的核心,但是 J2EE 开发新手经常用不好它。本文将消除 JNDI 在 J2EE 应用程序中所扮演角色的神秘性,并展示它如何帮助应用程序从部署细节中解脱出来。

虽然 J2EE 平台提高了普通企业开发人员的生活水平,但是这种提高是以不得不学习许多规范和技术为代价的,这些规范和技术则是 J2EE 为了成为无所不包的分布式计算平台而整合进来的。Dolly Developer 是众多开发人员中的一员,她已经发现了一个特性,该特性有助于缓解随企业级应用程序部署而带来的负担,这个特性就是 JNDI,即 Java 命名与目录接口(Java Naming and Directory Interface)。让我们来看看 Dolly 在没有 JNDI 的时候是怎么做的,以及她是如何正确地应用 JNDI 来改善其状况的。

所有人都非常熟悉的旅程

Dolly Developer 正在编写使用 JDBC 数据源的 Web 应用程序。她知道自己正在使用 MySQL,所以她将一个对 MySQL JDBC 驱动程序类的引用进行了编码,并通过使用适当的 JDBC URL 连接到其 Web 应用程序中的数据库。她认识到数据库连接池的重要性,所以她包含了一个连接池包,并把它配置成最多使用 64 个连接;她知道数据库服务器已经被设置成最多允许 128 台客户机进行连接。

Dolly 在走向灾难

在开发阶段,每件事都进行得很顺利。但是,在部署的时候,开始失控。Dolly 的网络管理员告诉她,她不能从她的桌面机访问生产服务器或登台服务器(staging server),所以她不得不为每个部署阶段开发不同的代码版本。因为这种情况,她需要一个新的 JDBC URL,所以还要为测试、阶段和生产进行独立的部署。(一听到要在每个环境中建立单独部署,熟悉配置管理的人会战战兢兢的,但是既然这是种非常普遍的情况,所以他们也只好硬着头皮上了。)

就在 Dolly 认为通过不同的 URL 建立彼此独立的部署已经解决了自己的配置问题时,她发现她的数据库管理员不想在生产环境中运行 MySQL 实例。他说,MySQL 用作开发还可以,但是对于任务关键型数据而言,业务标准是 DB2®。现在她的构建不仅在数据库 URL 方面有所不同,而且还需要不同的驱动程序。

事情越变越糟。她的应用程序非常有用,并且变得非常关键,以致于它从应用服务器那里得到了故障恢复的能力,并被复制到 4 个服务器集群。但是数据库管理员提出了抗议,因为她的应用程序的每个实例都要使用 64 个连接,而数据库服务器总共只有 200 个可用连接 —— 全部都被 Dolly 的应用程序占用了。更麻烦的是,DBA 已经确定 Dolly 的应用程序只需要 32 个连接,而且每天只有一个小时在使用。随着她的应用程序规模扩大,应用程序遇到了数据库级的争用问题,而她的惟一选择就是改变集群的连接数量,而且还要做好准备,在集群数量增长或者应用程序复制到另一个集群时再重复一次这样的操作。看来她已经决定了如何配置应用程序,应用程序的配置最好是留给系统管理员和数据库管理员来做。


    
[3]node.js通过msnodesql访问SQL Server
    来源:    发布时间: 2013-11-06

Node.js一直都与mysql , Nosql 配合使用,对于Sql  Server却没有很好的支持,一直都是小众技术人员自己编写访问程序。

2012年微软公司官方发行一款Node.js访问Sql Server的驱动程序——msnodesql ,让Node.js访问SQL Server更加简单。

安装

msnodesql 下载地址:下载  自行选择与自己系统相符的版本,点击安装。

msnodesql 官方地址:https://github.com/WindowsAzure/node-sqlserver 含wiki 和 疑问解答 。

在node.js环境下,安装方式和其他驱动安装一样,安装命令:nmp install msnodesql 

安装过程中需要注意的两个问题:

1、安装之前必须安装SQL Server Native Client 11.0 32位下载地址:下载 64位下载地址:下载 ,安装此程序不需要SQL server2012支持,经测试,SQL 2005和SQL 2008 可以正常安装使用。

2、安装过程中,如出现错误,检查是否在管理员界面下进行命令安装,这个问题我纠结了好长一段时间。

    

(右键——以管理员身份运行)

 

使用

引用驱动 

var sql = require('msnodesql');

建立数据库连接 

var conn_str = "Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";

不要被 SQL Server Native Client 11.0 吓到,可以完美支持sql 2005和sql 2008 的。

打开数据库

sql.open(conn_str, function (err, conn) {
if (err) {
console.log("Error opening the connection!");
return;
}

//这里是查询语句
});

SQL操作

sql.queryRaw(conn_str,"SELECT * FROM TestTable",

function (err, results)
{
if (err)
{
console.log("Error running query!");
return;
}
for (var i = 0; i < results.rows.length; i++)
{
  console.log("0:" + results.rows[i][0]); }
});

 

注意:此处的写法与wiki文档的写法有些不同,我用过wiki文档的写法(https://github.com/WindowsAzure/node-sqlserver/wiki),有时会出现无法查询数据的情况,w我这种写法是参考源代码中参数的写法,queryRaw包含四个参数:

connectionstring:链接字符串(wiki里面的居然没有用这个,直接用function里面的参数 conn,搞不懂)
query:SQL语句
param:参数(可选的)
callback:回传函数,操作完以后返回的事件

一个完整的例子
var sql=require('msnodesql');
var conn_str="Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";

sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}

sql.queryRaw(conn_str, "select * from users", function (err, results) {
if (err) {
console.log(err);
}
else {
for (var i = 0; i < results.rows.length; i++) {
console.log(results.rows[i][0] + results.rows[i][1]);
}
}
})

})

 

 

本文链接


    
最新技术文章:
▪css white-space:nowrap属性用法(可以强制文字不...
▪IE里button设置border:none属性无效解决方法
▪border:none与border:0使用区别
▪html清除浮动的6种方法示例
▪三个不常见的 HTML5 实用新特性简介
▪css代码优化的12个技巧
▪低版本IE正常运行HTML5+CSS3网站的3种解决方案
▪CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chr...
▪ie6,ie7,ie8完美支持position:fixed的终极解决方案
▪小技巧处理div内容溢出
▪html小技巧之td,div标签里内容不换行
▪纯CSS实现鼠标放上去改变文字内容
▪li中插入img图片间有空隙的解决方案
▪CSS3中Transition属性详解以及示例分享
▪父div高度不能自适应子div高度的解决方案
▪告别AJAX实现无刷新提交表单
▪从零学CSS系列之文本属性
▪HTML 标签
▪CSS3+Js实现响应式导航条
▪CSS3实例分享之多重背景的实现(Multiple background...
▪用css截取字符的几种方法详解(css排版隐藏溢...
▪页面遮罩层,并且阻止页面body滚动。bootstrap...
▪CSS可以做的几个令你叹为观止的实例分享
▪详细分析css float 属性以及position:absolute 的区...
▪IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解...
▪CSS小例子(只显示下划线的文本框,像文字一...
▪可以给img元素设置背景图
▪不通过JavaScript实现的自动滚动视差效果
▪div+CSS 兼容小摘
▪CSS的inherit与auto使用分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3