How to generate a static page

xiaoxiao2021-04-05  254

Scenario 1: ///

/// Incoming URL HTML code /// /// url /// < / returns> public static string getUrltoHtml (string Url) {errorMsg = ""; try {System.Net.WebRequest wReq = System.Net.WebRequest.Create (Url); // Get the response instance.System.Net.WebResponse wResp = WREQ.GETRESPONSE (); // read an http-specific property // if (WRESP.GETTYPE () == httpwebresponse) // {// DateTime Updated = (system.net.httpwebresponse) WRESP) .lastmodified; / /} // Get the response stream.System.IO.Stream respStream = wResp.GetResponseStream (); // Dim reader As StreamReader = New (respStream) StreamReader System.IO.StreamReader reader = new System.IO.StreamReader (respStream, System.Text.Encoding.Getencoding ("GB2312")); return reader.ReadToend ();

} catch (system.exception ex) {erroormsg = ex.Message;} return ";

You can use this function to get the HTML code of the client client, and then save it to the .html file.

Scenario 2: Generate a single static page is not difficult, it is difficult to keep the associations and links between the respective static pages remain complete; especially when frequently updated, modified, or deleted in the page;

As Alibaba's page is all HTML, it is estimated that the function of address mapping for address mapping is available: http://www.easewe.com/article/showArticle.aspx? Article = 131

You can look at this page, analyze his "bidding countdown" function http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&bidding=Home5asp.net Generate static HTML pages in ASP The FileSystemObject object for generating static bus is implemented in. In .NET, this type of operation is system.io below is the program code note: This code is non-original! Refer to someone else code: // Generate HTML Pable Public Static Bool Writefilefile (string strText, string strContent, string strAuthor) {string path = HttpContext.Current.Server.MapPath ( "/ news /"); Encoding code = Encoding.GetEncoding ( "gb2312"); // read the template file string temp = HttpContext.current.server.mappath ("/ news / text.html"); streamReader sr = null; streamwriter sw = null; string str = ""; try {sr = new streamreader (TEMP, CODE); str = SR. ReadToend (); // Read file} catch (exception exp) {httpContext.current.response.write (exp.Message); httpcontext.current.response.end (); sr.close ();} string htmlfilename = datetime .Now.tostring ("YYYYMMDDHHMMSS") ". Html"; // Replace content // This time, the template file has been read into the variable named STR Str.Replace ("ShowArticle", strtext); // ShowArticle str = str.replace in the template page ("Biaoti", STRText); str = str.replace ("Content", strcontent); str = str.replace ("author", strauthor); // write file try {sw = new streamwriter (Path HTMLFileName, False, Code); SW .Write (STR); sw.flush ();} catch (exception ex) {httpcontext.current.response.write (ex.Message); httpContext.current.Response.end ();} finally {sw.close () } Return true; this function is placed in the CONN.CS base class in the code to add news's code: Engine name HOVER

if (Hover.Conn.writeFileThis.title.Text.TString), this.content.text.tostring)))) {response.write ("Add success");} else {response. Write ("Generate HTML Error!");} Template page text.html code

Code: ShowArticle </ Title> <body> Biaoti <br> Content <br> Author < / body> </ html> biaoti <br> Content <br> Author </ body> </ html> prompt to add a successful HTML file with the current time as the file name! Only a few parameters passed directly Write an HTML file, you need to add a database first in practical applications, and then write to an HTML file scheme 3: To a client reference (SJ) its role is to get a page's code in the client manner, You can then do other uses, this example is direct output <script> var oxmlhttp = new activityXObject ("Microsoft.xmlhttp"); oxmlhttp.open ("get", "http://www.163.com", false) Oxmlhttp.send () var ostream = new activXObject ("adoDb.stream"); ​​if (ostream == null) Alert ("Your machine does not support adodb.stream.") Else {ostream.type = 1; Ostream. Mode = 3; ostream.open (); ostream.write (oxmlhttp.responsebody); ostream.position = 0; ostream.type = 2; ostream.charset = "gb2312"; var result = ostream.readText (); ostream. Close (); ostream = null; var aa = window.open ("," ") document.write (result); aa.document.write (result);} </ script></p> <p>Solution 4: Learn 9CBS. Save data with XML, and the template XSL has only one file. Use XML to save data, use XSL to define templates and called data. Data can be displayed in the client or service segment via XSL. If you want to generate static leaves, it is simpler. Check the problem of .NET XML package problem solved. Advantages: It can be easily converted into the format and content you want. Disadvantages: Need to learn more, not getting better.</p> <p>Solution 5: Thinking</p> <p>1. Use tools such as DW-MX to generate a template of the HTML format, add special tags (such as $ HTMLFORMAT $) where you need to add formats, dynamically generate files to read this template when you use the code, then get the contents of the front desk, Add to this template's tag position, generate a new file name and write the disk, and write related data to the database after writing. 2. Use the background code hard to encode the HTML file, you can use the HTMLTextWriter class to write the HTML file. Advantages 1. You can create a very complex page that uses methods containing JS files, adding the document.write () method in the JS file, you can add content such as page, advertisement, etc. in all pages.</p> <p>2. Static HTML file Use the MS Windows2000 INDEX Server to establish a full-text search engine, using ASP.NET to get search results in a DataTable method. The Win2000's INDEX service cannot find the content of the XML file. This search feature will be very powerful if the database search is included with the INDEX index.</p> <p>3. Save the server's load, request a static HTML file to save a lot than an ASPX file server resource.</p> <p>Disadvantage</p> <p>Idea 2: If you use hard-coded way, the workload is very large, you need a lot of HTML code. Difficulties in debugging. Moreover, the HTML style generated by hardcod cannot be modified. If the site is replaced, then you must re-encode, bringing huge effort to the later period.</p> <p>So this is the first idea</p> <p>Library code</p> <p>1. Define (Template.htm) HTML Template Page</p> <p><Html></p> <p><HEAD></p> <p><Title> </ title></p> <p><Meta http-equiv = "content-type" content = "text / html; charSet = GB2312"></p> <p></ HEAD></p> <p><Body></p> <p><Table $ htmlformat [0] height = "100%" border = "0" width = "100%" cellpadding = "10" cellspacing = "0" bgcolor = "# eeeeee" style = "Border: 1px solid # 000000" ></p> <p><Tr></p> <p><Td width = "100%" valign = "middle" align = "left"></p> <p><Span style = "Color: $ HTMLFORMAT [1]; Font-size: $ HTMLFORMAT [2]> $ HTMLFORMAT [3] </ span></p> <p></ Td></p> <p></ TR></p> <p></ TABLE></p> <p></ Body></p> <p></ Html></p> <p>2.asp.net code:</p> <p>// -------------------- Read the HTML template page to the StringBuilder object ----</p> <p>String [] format = new string [4]; // Define an array of HTMLYEM tags</p> <p>Stringbuilder HTMLText = New StringBuilder (); TRY</p> <p>{</p> <p>Using (StreamReader SR = New StreamReader ("Path and Page Name of the Template page")))))</p> <p>{</p> <p>String line;</p> <p>While (line = sr.readline ())! = null)</p> <p>{</p> <p>HtmlText.Append (line);</p> <p>}</p> <p>sr.close ();</p> <p>}</p> <p>}</p> <p>Catch</p> <p>{</p> <p>Response.write ("<script> Alert ('Read file error') </ script>");</p> <p>}</p> <p>// -------------------- give the marker array value ------------</p> <p>Format [0] = "Background =" bg.jpg ""; // background picture</p> <p>Format [1] = "# 990099"; // font color</p> <p>Format [2] = "150px"; // Font size</p> <p>Format [3] = "<Marquee> generated template HTML page </ marquee>"; // Text description</p> <p>/ / ---------- Replace the mark in HTM for you to add content</p> <p>For (int i = 0; i <4; i )</p> <p>{</p> <p>HTMLText.replace ("$ HTMLFORMAT [" "]", Format [i]);</p> <p>}</p> <p>// ---------- Generate HTM files --------------------</p> <p>Try</p> <p>{</p> <p>Using (streamwriter sw = new streamwriter ("Storage Path and Page Name", False, System.Text.Encoding.Getencoding ("GB2312"))))</p> <p>{</p> <p>SW.writeLine (HTMLText);</p> <p>Sw.flush ();</p> <p>SW.CLOSE ();</p> <p>}</p> <p>}</p> <p>Catch</p> <p>{</p> <p>Response.write ("The File Could NOT BE WIRTE:");</p> <p>}</p> <p>Small junctions can be convenient to generate an HTML file. The program uses a loop replace, so the template speed that needs to replace a large number of elements is very fast.</p> <p>TRACKBACK: http://tb.blog.9cbs.net/trackback.aspx?postid=554249</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-131976.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="131976" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.033</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'OpGcsE9MUKAAX_2B9Sd8iZfcm_2Fwb6jm8rkJ956cUbuiknjgAS4vYq_2BVDSpuxnEXz1ifNTvDSlh5_2F3HcyrWLbXo0w_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>