试说明脚本语言运行于服务器端和客户端的不同

试说明脚本语言运行于服务器端和客户端的不同,第1张

1 服务器端

常见的服务器端语言,php,jsp,asp

像我们普通浏览网页给予一中BS模式,其实他也只是一中统一于Browser(浏览器)的CS模式。我们的浏览器作为客户端,在点击链接或者输入地址时,向目的主机发送HTML,FTP等等服务请求,然后目的主机根据请求类型,请求内容给予响应。这种万变不离其宗的服务形式普遍存在于所有的网络通信模式中。

服务器脚本很简单,他是应于提交和处理表单,实现动态内容而出现的。想象一下一个中型网站大约有几千个链接地址,你总不能为每一个地址增加一个页面吧。于是服务器脚本从底层抽象出逻辑,把框架相同,但是内容不同的页面综合。最重要的是将逻辑处理与数据分开。于是,多个用户提交一个请求,大家享用了共同的逻辑处理方式,但是因为我提交的表单不一样,相应处理也会不同,于是返回内容也就不同

假设楼主头上有Baidu搜索框,然后输入关键字点击搜索答案。这就是一个提交表单动作。即便关键字不同,服务器的底层处理方法都是没有改变的,但是他返回的结果就如你的映射

y = f(x),f是逻辑处理,x是用户表单,y是返回内容。

2 客户端脚本,对应有 javascript,perl等等

其实客户端脚本从javascript才有着重强调过,尤其是ajax技术的出现,让客户端被重视起来。

很明显,服务器的数据都是存放在数据库中的,每一次查询都是需要数据库的链接,往往数据库链接比数据库查询更加费时。为了避免这种情况,网页设计者可以将简单的逻辑抽象出来,比如一次性读入整体的数据,然后将数据存入客户端(浏览器)的进程当中,这样下次就不用重新建立链接,我可以从自己机子上得到数据。根本不需要服务器频繁通信。

客户端脚本的目的很明显,既避免了重复冗余的链接,有能缓解服务器的压力(你不用要求服务器多次查询数据库)。

3区别

这样就很明显了,服务器脚本运行于服务器之上,你永远看不到服务器脚本的内容,得到的只有脚本解释器发回的HTML代码,浏览器对他照盘接收。

客户端脚本脱离服务器运行,不直接执行数据库操作。他实现了客户端上的简单逻辑。

Ajax技术让客户端脚本变的另类且强大,他让客户端语言将数据库操作封装起来,允许用户在一个界面实现完全分离的数据库操作请求。你可以查阅IBM的开发者社区,来了解Ajax技术内幕。

你可以尝试安装LAMP来获得更深刻的体验。

另外,Gmail就是一个AJAX应用程序的典范。

http://wwwibmcom/developerworks

http://wwwgmailcom

http://wwwmysqlcom

http://wwwphpnet

http://wwwapacheorg

javascript在客户端用的较多;

vbscript在服务器端用的较多;

他们在客户端运行,保密性差;

在服务器端运行,保密性较强;

vbscript属于松散型变量定义,可以不声明拿来就用javascript属于紧凑型的,一般要声明才可以用javascript是默认的客户端脚本,vbscript是默认的服务器端脚本他们都既可以在客户端运行,也可以在服务器端运行

还是javascript 好,不仅可以用的客户端,也可用于服务端。服务端Javascript有着较强的同数据库连接能力。可以连接DB2、Informix、Oracle、Sybase等数据库,通过ODBC它也可以同目前最流行的Microsoft的SQL的数据库连接。

还有,javascript具有面向对象的特性。

基于javascript的一些应用,如Flash中的ActionScript和Javascript二者有着惊人的相似性

还有很多,不必详述,总之是一定要学的

 首先我们先来了解一下ASP页面执行的流程

  IIS找到ASP文件 提交给ASP引擎(一般是ASP DLL)处理

  引擎打开这个ASP文件 找出<%和%>之间的内容 当然还有<script runAt= server >和对应的</script>之间的内容 这些内容称为脚本块 只有脚本块里的内容被引擎解析 其他内容不管 作为没有意义的字符插在脚本块之间 有必要说明一下的是 其实被解析的内容还不止这些 <!——#include ——>类的服务器端包含文件也是由引擎包含进来并加以处理的 如果你读的程序比较多 你还会知道有的runAt属性标注为 Server 的<object>对象也是会被处理的 这里不做深入讨论

  引擎执行脚本块中的脚本 这些服务器端的脚本是作为一个整体被执行的 也就是说 可以写出如下的代码

 <%Dim iFor i= to %> Hello World!<% Next %>    引擎并不会将这些脚本块分开解析 而使两个脚本块都发生语法错误 所以我们得到如下结论 并非所有非服务器脚本的代码都会被发送到客户端 有可能这段非服务器脚本的代码被脚本块限制了 服务器是一定不会操心客户端脚本的执行问题的 但是可以通过服务器端的脚本输出不同的客户端脚本

  最终引擎产生了一个文本流 或者说是脚本的执行结果 可以认为这是一个字符串 就是发送到客户端浏览器的网页的代码 客户端浏览器将页面显示出来 此时页面的源代码(源文件)是不包含服务器端的脚本的 但包含了服务器端脚本的执行结果(这是显然的)

 <% … %> 与 <script runat= server >…</script>

 它们都是服务器端的脚本 同时被处理执行 他们执行时是作为一个整体的

 <% … %> 与 <script language= … >…</script>

 前者是服务器端脚本 后者是客户端脚本 前者先执行 后者后执行

 其实也不尽然 二者的脚本是有可能在同时被执行的 但空间不同 仍然是 前者在服务器上执行 后者在客户端浏览器里执行 前者在逻辑上一定提前于后者执行 同时我们也得到结论 在同一个页面的执行中 客户端脚本无论如何不能反馈给服务器端脚本 也就是说 客户端浏览你的留言本并且提交新留言或者是任何客户端脚本获取的值都不可能在同一次服务器响应中被处理

 关于组件的调用

 注意服务器端脚本和客户端脚本都是脚本 自然都可以创建xml组件 ADODB Connection组件等 但是并不是放在哪里都可以的

 xml如果用于服务器的抓取网页(比如采集)就要在服务器脚本里创建了 而如果是用于客户端的ajax无刷新而后台访问服务器端的页面 那么就是运行于客户端的了 自然在客户端创建

 ADODB Connection组件用于访问数据库 一般来说在服务器端创建 毕竟是服务器端的asp程序在跑数据库的数据 但如果你的数据库真的是在客户端连接的 那么就毫无疑问在客户端脚本里创建了

 总之 矛盾着的事物及其每一个侧面各有其特点 不同事物有不同的矛盾 同一事物在发展的不同过程和不同阶段上有不同的矛盾 同一事物中的不同矛盾 同一矛盾的两个不同方面各有其特殊性(看不懂的可以略去不看……) 这一原理要求我们坚持具体问题具体分析原则 在矛盾普遍性原理的指导下 具体分析矛盾的特殊性 并找出解决矛盾的正确方法 反对千篇一律地采用一种方法解决不同事物的矛盾 一把钥匙开一把锁 到什么山唱什么歌 讲的就是这个道理

 服务器端VBScript脚本创建对象使用Server CreateObject(className)方法 客户端VBScript脚本创建对象使用CreateObject(className)方法

 典型错误<%Function TSize(b) 这是我自定义的函数TSize= 中国 end function%><a javascript:<%TSize( 变量 )%> >点这里要使用我定义的函数</a>    错误分析

 混淆了服务器端脚本和客户端脚本的区别 实际执行时我们会发现 客户端根本没有收到什么TSize之类的代码 因为TSize是服务器端的程序 被引擎处理之后(注意引擎对于函数的处理 纯粹是给服务器端脚本调用的 不会发回到客户端)就消失了 不可能在客户端起作用 这就是说 客户端脚本无法直接调用服务器端脚本的函数

 事实上 这个程序是有语法错误的 引擎处理这段内容的时候先找到了<%和%>之间的内容 也就是<%TSize( 变量 )%> 显然这段内容不符合VBScript的语法规则 嗯 改成<%=TSize( 变量 )%>在服务器端脚本就没有语法错误了 这时TSize函数可以正常返回值 中国 于是客户端收到的href属性是这样写的 javascript 中国 是无法执行的

 服务器端脚本对客户端脚本的影响

 前面已经说过了 服务器端脚本在逻辑上是提前于客户端脚本的执行的 因此这样的代码是可行的 <%Dim iFor i= to Response Write <script type= text/javascript > _& alert( Hello World! & i & )</script> Next%>

 关于Response Redirect与javascript的执行问题

 注意以下代码的写法是错误的 <%Response Redirect index asp Response Write <script type= text/javascript > _& alert( 密码错误! )</script> %>    这是一种常见的错误 编写者常常以为 这样写代码可以使客户端先弹出 密码错误 的提示然后转向到index asp 事实上这不可能发生 即使将两行代码顺序交换 也不可能达到这种效果

 究其原因 和服务器对于两行代码的处理方式有关 这两行代码不可能同时起作用

 Response Write是向客户端发送一段文本 这段文本的内容可以是一段脚本 那么客户端浏览器收到后可以执行这段脚本 注意 要收到之后才能执行

 而Response Redirect是向客户端发送了一个HTTP头信息(什么是HTTP头信息?这么说吧 比如对客户端Cookies的写入是HTTP头信息 HTTP头信息在HTTP的主体之前发回客户端浏览器 这就是为什么有时我们把服务器的缓冲关闭之后修改Cookies会出错的原因 因为主体已经开始传送 不允许发送HTTP头信息了 ) 信息的内容告诉客户端浏览器应该跳转页面浏览 注意 这个Redirect信息是立刻起作用的 也就是说这个Redirect信息具有排他性 在缓冲打开的情况下 无论已经使用Response Write向缓冲里写入了多少内容 一旦调用Response Redirect 将会清空缓冲 并且向客户端浏览器发送这个头指令 如果动态跟踪一下程序的执行 我们还会发现 在调用了Response Redirect之后 程序停止执行了 所以注意服务器端程序在调用Response Redirect之前要做好数据连接的关闭等操作

lishixinzhi/Article/program/net/201311/12587

1、故名思议简单的来说就是一个在客户端执行的代码,无须上传服务器那进行执行如JavaScript本地验证用户登陆格式,服务器端脚本就是要在服务器端执行了。

2、WIN系统。控制面板。。添加或删除程序。。里面选添加删除windows程序。。选inter信息服务。这个就是IIS。。完了以后选开始,程序,管理工具里的IIS管理器。。设置好站点目录。NTFS下要设置好目录权限。。。IIS中设置站点目录中执行权限选“脚本和可执行文件”。。。上面要钩选“脚本资源访问

这是设置

简单的说就是要有组件: IIS

3、第一个问题:Asp内置对象

ASP有6大内置对象,用于扩展ASP应用程序的功能。使用这些对象,可以检索在浏览器请求中发送的信息。可以发送输出结果给浏览器,还可以存储有关用户的信息等。这些对象可以在ASP中并通过代码进行访问。具体对象有:

Request对象(用于访问从客户端浏览器向服务器所发送的请求信息)

Response对象(用于将数据从服务器发送回客户端)

Application对象(用于存储、读取共享应用程序级信息)

Session对象(用于存储、读取可在页面之间调用的特定用户信息)

Server对象(用于访问服务器上的资源)

ObjectContext对象(用于控制事务处理)

第二个问题:如何扩充功能

。net中可以添加外部组件和第三方应用程序

4、create 是创建表、数据库、试图等的关键字

如创建表a:create table a

f1 int, //整形 大小4个字节

f2 varchar(10) //字符串 长度为10

5、select是查询语句关键字

如查询表a全部数据:

select from a

6、insert 是向表中插入数据的关键字

如向表a中插入两条数据:

insert into a values(123,'数据')

insert into a values(124,'程序')

不知道这样的回答你满意不呵呵

客户端:

1 ftp 2 bat 3 WINDOWS计划任务

第一步: 脚本语言写在tongbuftp 中

open 192168099

administrator

d:

Cd jieshouwenjian

Bin

Prompt

Mget

Bye

Mget 是下载 Mput 是上传

第二步:写批处理文件 来执行你的脚本 tongbubat

ftp -s:d:\tongbuftp

第三步:打开WINDOWS计划任务 设定定时执行

控制面板——计划任务

服务器端:

建立好 用户名:administrator 密码:无 的用户

web页面开发语言有很多种,本文将介绍其中5种常见的语言,分别是html、XML、ASP、JavaScript、VBScript。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 试说明脚本语言运行于服务器端和客户端的不同

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情