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

    做一头勤恳的技术牛

  • 相关阅读:
    EntityFramework 启用迁移 EnableMigrations 报异常 "No context type was found in the assembly"
    JAVA 访问FTP服务器示例(2)
    NuGet Package Manager 更新错误解决办法
    JAVA 访问FTP服务器示例(1)
    RemoteAttribute 的使用问题
    诡异的 javascript 变量
    javascript apply用法
    Babun 中文乱码
    GSM呼叫过程
    转站博客园
  • 原文地址:https://www.cnblogs.com/chinaagan/p/3191349.html
Copyright © 2011-2022 走看看