• 使用nosql实现页面静态化的一个小案列


    页面静态化,其实就是将动态生成的php页面,变成静态的HTML页面,让用户直接访问。有一下几方面好处:

    1,首先就是访问速度,不需要去访问数据库,或者缓存来获取哪些数据,浏览器直接加载渲染html页即可。所以可以大大的提高访问效率;   

    2从网站优化来分析,搜索引擎更喜欢静态的网页,静态网页与动态网页相比,搜索引擎更喜欢静的,更便于抓取,搜索引擎SEO排名更容易提高。    

    3,从安全角度讲,静态网页不宜遭到黑客攻击,如果黑客不知道你网站的后台、网站采用程序、数据库的地址,静态网页, 更不容易受到黑客的攻击。      

    4,从网站稳定性来讲,如果程序、数据库出了问题,会直接影响网站的访问,而静态网页就避免了如此情况,不会因为程序等,而损失网站数据,影响正常打开,损失用户体验,影响网站信任度。(这一天是我最喜欢的,它提高了网站的可用性)。

    几种页面静态化方法:

    1、真静态。(实实在在的生成.html文件,用户直接访问静态化文件,而不是动态的读取数据库然后生成页面。)

    2、伪静态。(对于实时性要求较高的网站,我们可以使用伪静态技术,其提高了SEO质量的同时,又保证了数据的实时性)

    下面我们来说一下,另一种比较特殊的静态化技术,利用nosql数据库实现页面静态化。(其实这个应该称作缓存技术了,但是原理和页面静态化相似,所以我觉得也可以称为一种页面静态化的技术

    因为页面是从内存中读取的,所以速度会很快。下面是利用memcache(也可以用其它nosql数据库,如redis... ...)实现该想法的一个小例子。

    <?php

    $news_id = $_GET['news_id']+0;//新闻id

    $news_statis_content = "news_content_".$news_id;//对应键

    $expr = 3600*24*10;//有效期,十天

    $mem = new Memcache;

    $mem--->connect('memcache_host', 11211);

    $mem_news_content = $mem->get($news_statis_content);

    if($mem_news_content){

    echo $mem_news_content;

    }else{

    ob_start();

    //从数据库读取数据,并赋值给相关变量

    //include ("xxx.html");//加载对应的新闻详情页模板

    $content = ob_get_contents();//把详情页内容赋值给$content变量

    $mem->add($news_statis_content,$content, false, $expr);

    ob_end_flush();//输出商品详情页信息

    }
    ?>

     

     

    tips:一般呢,我们不会用nosql这样做,因为对内存的消耗比较大,我们一般用nosql数据库做数据缓存。这里只是一个小思路,活跃一下大脑。

  • 相关阅读:
    学习Ember遇到的一些问题
    angular学习资源
    电话号码验证(正则)
    使用 Bitbucket Pipelines 持续交付托管项目
    zookeepercli
    如何用 JIRA REST API 创建 Issue
    Maven如何传递系统属性变量到TestNG
    基于WebDriver&TestNG 实现自己的Annotation @TakeScreenshotOnFailure
    25+ Useful Selenium Web driver Code Snippets For GUI Testing Automation
    Selenium WebDriver 之 PageObjects 模式 by Example
  • 原文地址:https://www.cnblogs.com/573734817pc/p/10108826.html
Copyright © 2020-2023  润新知