admin 管理员组

文章数量: 887021


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编码格式另存为的文本文件。再在浏览器中打开,终于又显示正常了。又是个弱弱的问题,我怎么就这么笨^_^ 不过还算好我也知道静态页面化是怎么做的了。


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

更多相关文章

Windows11动态磁贴替代软件大盘点 _φ(❐_❐✧ windows教程

2月前

文章目录 前言快速启动器LUCY界面与基本功能演示图核心功能体验说明 Maya界面与基本功能演示图核心功能体验说明 Rolan界面与基本功能演示图核心功能体验说明 总结 桌面整理工具360桌面助手DeskGo(腾讯桌面)酷呆桌面StarDo

计算机ip地址无法更改,win7电脑无法更改ip地址静态ip不能保存怎么办

2月前

由于特殊原因会需要更改电脑的ip地址&#xff0c;但不少用户碰到更改ip地址后无法保存的情况。最近win7纯净版64位用户咨询爱纯净win7静态ip不能保存怎么办。针对这个问题&#xff0c;接下来爱纯净分享下win7系统

C# winform调用浏览器打开页面方法分享,希望对大家有帮助

2月前

原文地址&#xff1a;https:wwwblogswohexiaocaip4522046.html using System;using System.Diagnostics;using System.IO;us

JS在浏览器中打开一个新的页面实例

2月前

该方法需要有完整路径&#xff0c;否则便会跳转到web项目资源了 window.open(http:127.0.0.1:8008blankTab.html);

jupyter Notebook打开后浏览器页面空白解决办法

2月前

第一种方法&#xff08;推荐&#xff09;:下载一个浏览器&#xff0c;卸载Jupyter Notebook默认的浏览器。卸载后Jupyter notebook会自动进行选择默认浏览器。 第二种方法卸载重新装

eclipse运行后在页面浏览器打开

2月前

eclipse默认使用的是内部自带的浏览器&#xff0c;可以设置为电脑系统的浏览器&#xff0c;具体设置步骤如下&#xff1a; 打开 eclipse ——选菜单 栏 window ——Perferences..

在Unity里点击按钮打开一个浏览器页面 点击关闭 关闭这个页面

2月前

原文链接&#xff1a;http:blog.csdnchh19941125articledetails46126467 在Unity里点击按钮打开一个浏览器页面  点击关闭 关闭这个页面using System.C

intellij idea在浏览器打开html页面,url显示文件路径如何将其显示localhost

2月前

1.本地安装node环境 2.插件安装 如果是intellij idea安装node插件 如果是vscode&#xff0c;则安装HTTP ServerHTML Preview插件

有关Mac系统的Safari浏览器打开某些页面时结构混乱问题的解决方案

2月前

解决方案一&#xff1a;按住键盘上的command-&#xff0c;适当地放大或缩小页面&#xff0c;但这只对某个页面生效 解决方案二&#xff1a;打开 Safari 浏览器的偏好设置&

android 分享到qq黑屏,为什么我的手机打开QQ好友动态就会黑屏?

2月前

满意答案 经常出现黑屏死机现象的原因及解决方法 这种黑屏死机的现象尤其在以下两种情况发生比较频繁&#xff1a; 1.发生在多个程序运行时(比如闹铃、短信、电话、拍照、游戏等等程序)。 2.运行程序时按键太快使手机反应不过来时。 而

tp交换机管理页面_TP-Link路由器作为无线交换机怎么设置【设置方法】

2月前

AP&#xff0c;即无线交换机&#xff0c;和router的区别就是不使用路由功能&#xff0c;一般是多台无线路由扩展信号覆盖用的。比如家里二层楼&#xff0c;一台放在一楼做Router&#x

tp交换机管理页面_TPLINK无线路由器怎么作为交换机使用? | 192.168.1.1登陆页面

2月前

现有网络应用中&#xff0c;有以下两类环境需要将无线路由器当作无线交换机(无线AP)使用&#xff1a;原有网络只能提供有线上网&#xff0c;为了满足手机、笔记本等终端设备无线接入上网&#xff0c;需要

Windows系统和Linux系统中的静态链接库与动态链接库(二)

2月前

1.先对上篇补充一点Windows环境下Visual Studio 2010开发遇见的一点小问题&#xff1a;      每次新建一个 Visual C 选项先建一个“Empty Project”类型的项目的时候&#xff

华硕电脑重装系统,进不去U盘启动页面

2月前

2019独角兽企业重金招聘Python工程师标准>>> 在用U盘给华硕电脑装系统时&#xff0c;发现总是不能从U盘启动&#xff0c;最后发现华硕设置了安全选项&#xff0c;解决如下&

软件的动态自修改是 AI 为软件开发带来的最大机会之一

2月前

本文分析了 OpenAI 的 o1 模型在复杂任务推理中的表现&#xff0c;特别是在将客户服务政策转化为可执行程序方面。通过与 GPT-4 和 GPT-4o 的对比&#xff0c;发现 o1 在逻辑能力和整体把握上有所提升

w7计算机打开后页面不对,win7系统打开word文档发现页码错乱的解决步骤

2月前

win7系统使用久了&#xff0c;好多网友反馈说win7系统打开word文档发现页码错乱的问题&#xff0c;非常不方便。有什么办法可以永久解决win7系统打开word文档发现页码错乱的问题&#xff0c;面对wi

手机手动设置代理之后打不开页面

2月前

如果发现手机设置代理之后一切设置正常&#xff0c;就是没有打开页面&#xff0c;那出问题的地方很有可能是Windows自带的安全防火墙墙了它&#xff0c;只要打开控制面板把防火墙关了就可以了。

DDMS的打开以及查看手机页面布局层次

1月前

ddms 查看android的界面布局层次 有时候看到一个比较好的界面或体验好的界面&#xff0c;就忍不住想看看其实现结果&#xff0c;那么可以通过DDMS工具来看相连设备层次以及使用哪些view。 上图是查看微信布局

post请求跳转页面_Python post请求模拟登录淘宝并爬取商品列表!

1月前

一、前言 大概是一个月前就开始做淘宝的爬虫了,从最开始的用selenium用户配置到selenium模拟登录,再到这次的post请求模拟登录。一共是三篇博客,记录了我爬取淘宝网的经历。期间也有朋友向我提出了不少问题,比如滑块失败,微博登录失

路由器桥接静态ip设置_如何在路由器上设置静态IP地址

16天前

路由器桥接静态ip设置 Routers both modern and antiquated allow users to set static IP addresses for devices on the network, but wh

发表评论

全部评论 0
暂无评论