zoukankan      html  css  js  c++  java
  • Render 使用

    Page页面文件,重新Render 方法,目的是把页面的ViewState信息放在最后,利于页面展示速度和SEO优化。

    Render方法对于重新Html控件还是很好用的。

        private static readonly Regex viewStateRegex = new Regex("<input type="hidden" name="__VIEWSTATE".*/>", RegexOptions.IgnoreCase); //过滤viewstate html标记的正则表达式
        private static readonly Regex endFormRegex = new Regex(@"</form>", RegexOptions.Multiline | RegexOptions.Compiled);
    
        protected override void Render(HtmlTextWriter writer)
        {
            System.IO.StringWriter stringWriter = new System.IO.StringWriter();
            HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
            base.Render(htmlWriter);
    
            string html = stringWriter.ToString();
            Match viewStateMatch = viewStateRegex.Match(html);
            string viewStateString = viewStateMatch.Captures[0].Value;//找出ViewState的Html标记 目的把viewstate的内容放到页面FORM的最后面加快加载速度和搜索抓录
            //  viewStateString = "<input type=/"hidden/" name=/"__VIEWSTATE/" id=/"__VIEWSTATE/" value=/"/" />"; //仿博客园
    
            html = html.Remove(viewStateMatch.Index, viewStateMatch.Length);//替换掉ViewState的html标记
    
            Match endFormMath = endFormRegex.Match(html, viewStateMatch.Index);
            html = html.Insert(endFormMath.Index, viewStateString);//将ViewState的Html标记插入到</form>标记之前
            writer.Write(html);
    
        }
    View Code

    做一头勤恳的技术牛

  • 相关阅读:
    仿酷狗音乐播放器开发日志二十七 用ole为窗体增加文件拖动功能(附源码)
    redis持久化和主从同步
    MySQL主从复制
    Nginx 安装与详解
    ContOS安装配置MySQL,redis
    ContOS7编译安装python3,配置虚拟环境
    ContOS7切换国内源
    ContOS 常用命令
    轮询、长轮询、websock
    flask之三方组件
  • 原文地址:https://www.cnblogs.com/chinaagan/p/3191349.html
Copyright © 2011-2022 走看看