当前位置: 首页 > news >正文

生成静态页面的方法

        一直以来都在做一些电子商务网站,也很少写博客,今天星期天,在公司值班,没有事就写一下我所做的项目是怎样生存成静态页面的。。我接手的这些项目中,有很多模块都是前人所写好的。就好比现在这个生成静态页面的方法,以前不知道它是怎样处理的,因为它是VB写的,我也没有学过VB,它的源码也看不明白。

        今天没有事情就打开它的源码来看,居然看到一个熟悉的类:WebClient ,虽然是VB的代码,但看了一下,不明白的上google找了一下,明白了它是怎样生成静态页面的了。C#做的话其实也很简单,同样是用WebClient类来实现。

   简单的描述一下需求,后台要添加新闻,然后把添加的新闻生成静态页面,例如:test.html这种文件形式。做起来是这样实现的,先做一个动态的新闻页面,即新闻的模板页,然后URL传入新闻ID参数,传到哪里呢?当然是传到新闻动态模板页了,模板页根据不同ID生成不同的新闻;然后调写WebClient的静态方法DownloadString,这个方法重载了两个,一个是string类型的,一个是Uri类型的。我把模板页的URL地址传进去,再给上参数,例如:http://localhost/Assistant/NewsModel.aspx?newsId=78,函数返回的是string,也就是给客户端看到的HTML代码了;这时就可以通过.net来写文件了哈。。思路说到这里了,我想大家实现起来也不是很难。。。。

  另外再贴一小段代码吧:

代码
     ///   <summary>
    
///  生成静态页
    
///   </summary>
     public   static   void  CreateStaticPage( string  filepath,  string  url)
    {
        WebClient wc 
=   new  WebClient();
        wc.Encoding 
=  Encoding.UTF8;
        
string  file  =  wc.DownloadString( " http://localhost/Assistant/NewsModel.aspx?newsId=78 " );
        
using  (FileStream fs  =   new  FileStream(HttpContext.Current.Server.MapPath( " new/test.html " ), FileMode.Create))
        {
            StreamWriter sw 
=   new  StreamWriter(fs, Encoding.UTF8);
            sw.Write(file);
            fs.Dispose();
            fs.Close();
        }
    }

 

转载于:https://www.cnblogs.com/jesser/archive/2009/11/29/1612963.html

相关文章:

  • 项目质量量化考核建议
  • Linux命令(磁盘的卸载与挂载)
  • 手势识别论文解读
  • 用于在弹出窗口中计算窗口位置的函数
  • 《领域特定语言》一2.2为何需要DSL
  • 关注数据中心NFV性能
  • 取页面内各种尽寸数据。备档
  • Kotlin和Java EE系列之—— 如何让Kotlin类对Java EE友好
  • 多个项目共享一个app.config 的解决办法
  • 程序员每周编程80+小时 健康如何保证
  • 网站性能愈来愈差怎么办?
  • 《C语言程序设计:问题与求解方法》——第2章C语言程序结构和基本语法要素...
  • Mysql:群集:windows环境:一台计算机上搭建:1个管理节点、2个数据节点、3个mysqld节点...
  • 准假网站不被发现
  • flex游戏编程性能优化
  • Angular2开发踩坑系列-生产环境编译
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JS 面试题总结
  • Linux快速复制或删除大量小文件
  • 爱情 北京女病人
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 基于遗传算法的优化问题求解
  • 聚类分析——Kmeans
  • 开发基于以太坊智能合约的DApp
  • 类orAPI - 收藏集 - 掘金
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 入手阿里云新服务器的部署NODE
  • 使用权重正则化较少模型过拟合
  • 正则表达式
  • ​虚拟化系列介绍(十)
  • ​学习一下,什么是预包装食品?​
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)球球大作战
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (TOJ2804)Even? Odd?
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .net6+aspose.words导出word并转pdf
  • @Autowired自动装配
  • [2023年]-hadoop面试真题(一)
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [GN] 后端接口已经写好 初次布局前端需要的操作(例)
  • [IE编程] IE中使网页元素进入编辑模式
  • [JavaEE] 线程与进程的区别详解
  • [nlp] 损失缩放(Loss Scaling)loss sacle
  • [poj 2001]Shortest Prefixes [Trie]
  • [poj 3461]Oulipo[kmp]