admin 管理员组

文章数量: 1184232


2024年2月24日发(作者:学完python后学c语言)

静态化页面实现学习 by widebright 静态化页面是指使用动态页面语言编程,生成*.htm静态页面文件。好像这个技术很流行!看象百度知道,没一个问题都是一个html文件,163新闻评论页面也都是html页面。所以在网上搜索了一下相关的资料。 为什么都喜欢采用静态页面化?听说是有以下有点:1、 提高服务器性能, *.aspx之类的动态页面毕竟是还要经过服务器解析处理的,而静态页面服务器只要返回相应的文件就可以了。怎么说静态面效率也要高一点啦。2、说是安全性高(可能是说不用担心SQL注入这些东西了,静态页面啊,当然没有这个了)。3、容易被搜索引擎收录(好像网页搜索引擎处理静态页面更容易一点,想也是动态页面还要请求啊什么的)。 可能还有其他有点我就不知道了。不过我个人觉得要不要采用静态化网页也还是要考虑一下的,动态网页的性能也没有象想象的那么差,大多数的时候还是能够满足要求的,象微软自己的网页MSDN, 论坛也没有去实现静态页面化。看了一下高手的分析,说是动态的网页便于控制权限,新闻的内容生成系统CMS 采用静态页面化确实可以提高系统性能。要不要采用这项技术还是自己考虑吧。中的实现方法:查找了很多资料,说我看到的一些实现方法。1. url重定向。就是在服务器端采用url重定向,把你对静态页面的请求转到动态页面上去。你访问/ 其实是转到/?id=254去了。 这个其实是假的静态化页面,他根本就没有静态页面的存在。 对URL重写转向的支持,在Apache服务器上由一非缺省模块(mod_rewrite)来完成,而在IIS下也同样有类似的模块,分别是ISAPI REWRITE及IIS REWRITE。无论是在Apache下还是在IIS下,重写转向的语法都基于正则表达式,只有少量的不同。这个IIS重定向ISAPI是要额外安装扩展才有的,有需要的可以自己在网上找一下。 在下面也可以通过实现http handler 或者http module 模块来实现,象有一个.net 平台的Ajax组件也是通过实现http handler 来整合的,关于http handler的实现在我的文件上传组件那篇文章里也有提及,感兴趣的自己学习吧。个人觉得是可以做到url静态请求转换到动态请求页面的这种url映射功能的。 不过这种方法是要稍稍影响性能的,毕竟多了个ISAPI的环节。2、采用xml文件,结合xlst文件。这种方法很多人都知道,因为CSDN论坛就是这么做的。我个人对xml方面的技术不太了解也不感兴趣。想了解这方面资料的自己找去吧,反正是通过xlst文件(模版)自动显示xml文件的内容出来。3.采用Ajax技术,采用这个当然可以做到静态页面了。4.采用html模版替换技术。就是预先写个html模版文件,然后在生成静态页面时进行替换。这种方法实现起来很容易,也是我想到的方法。网上有很多例子,我就不详细说了。比如写象下面一样一个模版 :…………titlecontent

生成静态页面的时候用个 e方法把 title content 等替换成你自己的具体的内容就行了。静态页面的生成可以选择在有数据更新的时候,比如一张帖子又有人回复了,就可以重新生成这张帖子的html文件。当然你这个html模版可以做的更复杂一些了,比如加入css等等啦。静态页面评论功能的实现:这也是一开始不理解的地方,看网易新闻,百度知道,都是html静态页面都还可以回复,发表评论等。这些评论、回复是要保存到数据库里面去的,不是动态页面才能实现的功能吗?我一开始感到很奇怪。综合众人的说法,网页点击技术等可以通过在 include 页面外javascript脚本的时候指定src为一个asp之类的动态网页,在那个动态页面实现计数等功能。评论功能的实现有人说在页面下端加一个iframe来显示。在iframe里加一个动态页面确实可以做到的,不过我觉得好像和直接采用动态页面没多大区别。 还是看看别人是怎么做的吧。我随便打开了个百度知道的页面,查看了一下页面的源代码:

checkcoAndsn(this,'回答');">

我也来回答:

回答即可得2分,回答被采纳则获得悬赏分以及奖励20分。

href="/search/zhidao_#n4">积分规则

回答字数在10000字以内

参考资料:

onKeyDown="ctlSubmit(event);">

如果您的回答是从其他地方引用,请表明出处。

 
可以看到其中的回复的一段如上面所示, 这个段是采用一个form标签框起来的。 好象有几个地方和特殊:比如 form的action属性 ,可能是我以前没做接触网页设计原因吧。我在网上查了一下这个属性,原来表示回复接受数据的网页的。 这样通过点击

type="submit" value="提交回答" class="bnsrh"> 这个按钮提交form页面的时候,这个form的数据就发送到action指定的地址去,由action指定的地址处理数据。明显可以再这里指定个动态网页然后再那个页面上进行处理,完成品评论/回复的提交功能。 至于 form标签中的那个method属性却是表示数据提交的方式。method为post的时候,数据是通过http来传送,数据传过去也可以在数据这里得到,如果method为get的时候,数据是编码后提交到url请求那里,在地址栏中显示出来,在接受页面可以通过得到这些数据。再查看了163网页的新闻评论那里,就更加清楚了,他那里action指向的就是一个jsp文件,静态页面提交的评论数据都是在jsp动态页面上处理的了。

action="/reply/" onSubmit="return reply_checksubmit();">

我的灌水记录
匿名发表

name="frmsubmit" type="submit" value="提 交" class="s1" />还可以看到的是百度知道中还有这样的代码:这些数据可能是在生成静态页面的时候插进去的,这些hidden 控件的value可以用来在接受回复的时候区分帖子ID等,比如19229897这个就是因为 他对应的静态页面是。

我还发现一个现象那就是163新闻评论的页面,其实也只是第一个页面是静态的而已,如果一个评论有多页的话,后面的页面也都是jsp动态页面了。这也是应该注意的一个地方吧! 静态页面化应用在象新闻啊这些一发布上去就不会变化的页面比较好一点。如果你的内容是不断更新很快的,你也采用这种技术,那么就要不断的重写静态html页面,那样IO操作对服务器性能影响也就很大。所以象索引页这样更新频繁的页面是不能实现静态化的,象百度知道的主页,如果采用静态页面化的话,那么没当有个人发一个提问,就要重写一下html页面,可能就回很慢了。高手的说法是采用缓存来提高性能,象CSDN开发人员说还说什么双缓存技术啊等等。缓冲页面、数据应该在提高性能方面起很大作用的吧,有时间要学一学。 好了不说了,说得越多越显得我没有水平^_^

写了个实现,验证一下form 的action属性的功能是否象我想的一样可以做静态页面的评论功能的实现的(其实我之前又再找了下资料,确实是这样子用的,有人也说到了做法,是我自己太差了,连这么一个普通的属性都不懂)。----------------页面 代码-------------------------

------------------------------------------------------------动态接受页面代码----------------------------<%@ Page language="c#" Codebehind="" AutoEventWireup="false"

Inherits="m1" %> WebForm1

---------------------------------------------------------------------动态接受页面代码----------------

using System;using tions;using entModel;using ;using g;using ;using nState;using ;using trols;using ntrols;namespace dddddd{ ///

/// Summary description for WebForm1. /// public class WebForm1 : { private void Page_Load(object sender, rgs e) { // Put user code to initialize the page here string content = ["content"]; if (content != ) {

("content="); (content);

} else { ("出现错误"); }

}#region Web Form Designer generated codeoverride protected void OnInit(EventArgs e){

// // CODEGEN: This call is required by the Web Form Designer. // InitializeComponent(); (e); }

///

/// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() {

+= new andler(_Load); } #endregion }}---------------------------------------------------------动态页面也就是接受到静态页面的数据之后直接输入而已,实际应用中,可能要作些数据库保存记录,然后根据模板重写 html文件更新静态页面,然后还可以重定向到这个页面上去。需要注意的是,如果在中form method指定为get的话,那么在动态网页这边只能使用

["content"]来获取数据了, 这时 ["content"]等不到数据了,不过如果method指定为post的话,应为传上来就是form变量,所以["content"]和["content"]都可以得到数据。不明白就查一下 method还有、的区别了。不过我做的时候还发现上面的代码出现回复提交中文的时候出现乱码的情况。明显是编码问题,在 标签之间加上charset=utf-8">一句指定网页编码。变成下面这样,在提交中文就不会乱码了。-------------------------------------------------

--------------------------------------------------------------------------------------------------------------------<%@ Page language="c#" Codebehind="" AutoEventWireup="false"

Inherits="m1" %> WebForm1

-------------------------------------------------------------------不过这回页面中文直接就显示乱码了。我用记事本打开按uft-8编码格式另存为的文本文件。再在浏览器中打开,终于又显示正常了。又是个弱弱的问题,我怎么就这么笨^_^ 不过还算好我也知道静态页面化是怎么做的了。


本文标签: 页面 静态 采用 动态

更多相关文章

解决iframe内嵌移动端页面出现样式错乱问题

3月前

出现移动端页面样式错乱的原因&#xff1a;手动给iframe标签设置高度造成的解决思路&#xff1a;在iframe页面完成DOM渲染再给iframe设置高度标签格式&#xff1a;<iframe id&qu

最新棕色羽毛鼠标图标下载与动静态应用实战

3月前

本文还有配套的精品资源&#xff0c;点击获取简介&#xff1a;在IT领域&#xff0c;用户界面&#xff08;UI&#xff09;设计对用户体验至关重要。本文围绕“最新棕色羽毛鼠标下载&

浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手

3月前

文章目录前言浏览器中输入URL返回页面全过程DNS域名解析过程TCP的三次握手、四次挥手一、浏览器中输入域名二、解析域名2.1 具体过程2.2 知识补充2.2.1 域名体系结构2.2.2 查询方式——递归查询、迭代查询2.2.3 DNS域名

Comprehensive Rust Clippy:静态分析与代码质量提升

3月前

Comprehensive Rust Clippy&#xff1a;静态分析与代码质量提升 【免费下载链接】comprehensive-rust 这是谷歌Android团队采用的Rust语言课程&#xff0c;它为你提供了快速

大二Web课程设计 HTML+CSS制作苹果商城网站 Apple商城 8个页面

3月前

&#x1f329;️ 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f482; 作者主页:

电脑开机进不去系统,一直卡在BIOS页面

2月前

当你打开电脑&#xff0c;发现一直进不去系统页面&#xff0c;一直卡在BIOS界面如这时就可以进行BIOS检查&#xff0c;选择Boot&#xff0c;查看BOOT Option #1 项是否存在Win

windows7设置静态arp

2月前

转载地址&#xff1a;http:pg54321.blog.163blogstatic14332471320115792530550 问题现象&#xff1a;在win7下直接运行cmd&#xff0c;然后

word 删除最后一页为横向页面后的竖向空白页

2月前

最后一页是横向&#xff0c;会多出来一个竖向的空白页。试了许多方法并不能达到效果。处理方式是&#xff0c;将空白竖页切换为横向&#xff0c;最后一页会消失。在开始中打开显示隐藏编辑标记&#xff0c;

零基础学习OllyDbg:Windows下PE文件动态分析

2月前

零基础入门OllyDbg&#xff1a;手把手带你调试Windows程序你有没有想过&#xff0c;一个.exe文件在双击之后&#xff0c;到底发生了什么&#xff1f;它如何被系统加载&#xff1

360WIFI登陆页面地址

2月前

360WIFI登陆页面地址&#xff1a;http:192.168.0.1initpc_index.html 转载于:https:my.oschinarootleeccblog647567

jsp页面在浏览器中无法访问之Tomcat服务器未启动

2月前

Tomcat那些事原因&#xff1a;Tomcat服务器没有启动&#xff0c;在地址栏输入地址访问页面的话&#xff0c;则会出现这个效果解决方法&#xff1a;启动Tomcat服务器

一键搞定主从路由器设置,轻松提升网络质量

1月前

首先按单路由方式设置好主路由,将连接一二级路由的网线插入主路由上任意一个LAN口中,然后按照以下方式设置从路由。方式一:动态IP1、电脑通过有线或无线连接从路由器, 进入设置页面;2、WAN口设置页

告别网速瓶颈:快速启动主从路由器技术的实用教程

1月前

首先按单路由方式设置好主路由,将连接一二级路由的网线插入主路由上任意一个LAN口中,然后按照以下方式设置从路由。方式一:动态IP1、电脑通过有线或无线连接从路由器, 进入设置页面;2、WAN口设置页

打造完美桌面体验——选择微软官方正版Windows系统无后顾之忧!

1月前

1、进入微软官网 微软官网地址:,点击导航栏上的 Windows按钮:2、进入WINDOWS支持页面 进入 windows页面后,拉倒页面的最底下,点击

DIY Win10系统:官方ISO镜像的不常规玩法

1月前

不用工具直接从微软官网下载Win10正式版ISO镜像的技巧 发表于2018年12月25日 23:21:24由MS酋长 我们在重装Win10系统时需要用到ISO镜像,并且微软官网也有专门的“”页面,但问题是,你打开

优化用户体验:让网页打开与关闭过程更流畅

1月前

过程拆分A页面中打开B页面,A,B页面通信方式? B页面正常关闭,如何通知A页面? B页面意外崩溃,如何通知A页面?A、B页面的通信方式url传参 localSt

从新手到大神,DirectDraw编程秘笈让你掌握Flash开发精髓

1月前

本文主要是在网上收集到的一些关于DirectDraw的文章! 一下为相关文章和链接(为什么给了链接还要给文章?因为怕给的链接失效,这样我们就找不到那些好的文章了,在这也谢谢那些提供文章的人!!!) 文章地址:

ESP-FLY微型四旋翼操控攻略:深入浅出的50mm级全栈开发指导

1月前

1. ESP-FLY:微型四旋翼无人机的工程实现全景解析 ESP-FLY并非一个概念玩具,而是一个经过工程验证、可量产落地的微型飞行平台。其核心价值在于将完整的飞控系统、无线通信、动力驱动与结构设计压缩至一枚50mm直径的圆柱

ESP-FLY微型无人机:以50毫米为轴心的全栈飞控技术实操教程

1月前

1. ESP-FLY:微型四旋翼无人机的工程实现全景解析 ESP-FLY并非一个概念玩具,而是一个经过工程验证、可量产落地的微型飞行平台。其核心价值在于将完整的飞控系统、无线通信、动力驱动与结构设计压缩至一枚50mm直径的圆柱

面对‘路由器没得到动态IP’的困扰,这里有解

1月前

问题: 解决: 动态IP获取不到的设置方法如下: (1)、路由器上选择“动态IP”上网路由器上选择动态IP上网(3)、修改路由器LAN口IP地址,点击“网络参数”——>“LAN口设置”——>把

发表评论

全部评论 0
暂无评论