http://comment.news.163.com/reply/footprint.jsp">我的灌水记录
匿名发表
还可以看到的是百度知道中还有这样的代码:
这些数据可能是在生成静态页面的时候插进去的,这些hidden 控件的value可以用来在接受回复的时候区分帖子ID等,比如19229897这个就是因为 他对应的静态页面是19229897.html。
我还发现一个现象那就是163新闻评论的页面,其实也只是第一个页面是静态的而已,如果一个评论有多页的话,后面的页面也都是jsp动态页面了。这也是应该注意的一个地方吧! 静态页面化应用在象新闻啊这些一发布上去就不会变化的页面比较好一点。如果你的内容是不断更新很快的,你也采用这种技术,那么就要不断的重写静态html页面,那样IO操作对服务器性能影响也就很大。所以象索引页这样更新频繁的页面是不能实现静态化的,象百度知道的主页,如果采用静态页面化的话,那么没当有个人发一个提问,就要重写一下html页面,可能就回很慢了。高手的说法是采用缓存来提高性能,象CSDN开发人员说还说什么双缓存技术啊等等。缓冲页面、数据应该在提高性能方面起很大作用的吧,有时间要学一学。 好了不说了,说得越多越显得我没有水平^_^
写了个实现,验证一下form 的action属性的功能是否象我想的一样可以做静态页面的评论功能的实现的(其实我之前又再找了下资料,确实是这样子用的,有人也说到了做法,是我自己太差了,连这么一个普通的属性都不懂)。
----------------index.htm页面 代码-------------------------
----------------------------------------------------
--------动态接受页面代码WebForm1.aspx----------------------------
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="dddddd.WebForm1" %>
WebForm1 http://schemas.microsoft.com/intellisense/ie5">
--------------------------------------------------------
-------------动态接受页面代码WebForm1.aspx.cs----------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace dddddd
{
///
/// Summary description for WebForm1.
///
public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
string content = Page.Request.Form["content"];
if (content != string.Empty)
{
Page.Response.Write ("content=");
Page.Response.Write (content);
}
else
{
Page.Response.Write ("出现错误");
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
---------------------------------------------------------
动态页面也就是接受到静态页面的数据之后直接输入而已,实际应用中,可能要作些数据库保存记录,然后根据模板重写 html文件更新静态页面,然后还可以重定向到这个页面上去。
需要注意的是,如果在index.htm中form method指定为get的话,那么在动态网页这边只能使用
Page.Request.Params["content"]来获取数据了, 这时 Page.Request.Form["content"]等不到数据了,不过如果method指定为post的话,应为传上来就是form变量,所以
Page.Request.Params["content"]和Page.Request.Form["content"]都可以得到数据。不明白就查一下 method还有Request.Params、Page.Request.Form的区别了。
不过我做的时候还发现上面的代码出现回复提交中文的时候出现乱码的情况。明显是编码问题,在
标签之间加上
一句指定网页编码。变成下面这样,在提交中文就不会乱码了。
------------------------index.htm-------------------------
----------------------------------------------------------
------------WebForm1.aspx----------------------------------------------
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="dddddd.WebForm1" %>
WebForm1 http://schemas.microsoft.com/intellisense/ie5">
------------------------------------------------------------------- 本文作者:widebright 来源:http://hi.baidu.com/widebright/b
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。