可能是自己愚笨,始终没搞清楚原理。
希望在CSDN上能得到各位高手指点。
核心问题是:网站后台数据库更新后,前台HTML自动更新其内容。
绝对不是伪HTML,JS、IFRAME等功能,是真正的镶嵌到了HTML中,IE-查看-源文件 时真正能看到这些内容,而且HTML是几十万页。当时所见程序是ECMS,phome.net 部分核心文件是ZEND过的,他的插件在后台直接操作,我用QQ远程协助看过他操作一次,后台好象一直有个缓存显示区域。排除服务器端有ISAPI插件。
HTML模板中设置一个唯一的标签,标签对应数据库中某条数据,只要更新了数据库,那么所有包含该标签的HTML页都会立刻更新,几乎是没有延时的,并且HTML达到几十万页。
当时那个网站主要是应用在了广告、和网站一些固定的布局上了。我听作者大概说过是利用缓存,而且说是他《发明》的,他的技术确实很好,但我更认为这是一种技巧,希望能与大家探讨。才找了半天,可惜当时有个文本文档保存了他后台缓存更新时的一些输出结果,现在找不到了……

解决方案 »

  1.   

    不是rewrite JS IFRAME 之类的问题,是真正的缓存,真正的写到了 HTML 里。我也做了几年的PHP程序员,如果不是真的确定是这样的技巧,不会折磨了这么久还在研究这个问题。
      

  2.   

    并且HTML达到几十万页,几乎是没有延时的。就这几十万页要都过一遍,也会很长时间了,等高手出现。。
      

  3.   

    并且HTML达到几十万页,几乎是没有延时的。
    ------------------------------------------楼主请不要妄想把自己的病态思想强加到别人的认知中去
      

  4.   

    绝对不是伪HTML,JS、IFRAME等功能,是真正的镶嵌到了HTML中,IE-查看-源文件 时真正能看到这些内容,而且HTML是几十万页。------------------------------------
     "查看源文件" 能看到 并不说明 就不是 伪html
      

  5.   

    绝对不是伪HTML,JS、IFRAME等功能,是真正的镶嵌到了HTML中,IE-查看-源文件 时真正能看到这些内容,而且HTML是几十万页。
    -----------------------------------------------------HTML模板中设置一个唯一的标签,标签对应数据库中某条数据,只要更新了数据库,那么所有包含该标签的HTML页都会立刻更新,几乎是没有延时的,并且HTML达到几十万页。
    -----------------------------------------------------包含该标签的HTML页都会立刻更新,这就是你所说的伪HTML,如果更新只做一次就是缓存。
      

  6.   

    如果真有楼主所说的技术,我想掌握了这种技术的人就不是人啊,而是神了看LZ这一句话,大家就知道是什么意思 只要更新了数据库,那么所有包含该标签的HTML页都会立刻更新,几乎是没有延时的,并且HTML达到几十万页。你更新十几W记录的数据库也要一0.X 秒了,别说一个一个的去写文件,十几W个文件,去死吧
    还没有延时,我不知道LZ 从什么地方还判断服务器不是伪HTML的,难道对方将服务器的用户名密码都给你了,还有你上去看了对方IIS 或 APACHE 的conf 文件?发生楼主所想的一切,只有一个可能,对方有几十W台服务器,在运行多线程软件,不停的生成那个网站的HTML文件
      

  7.   

    我个人认为.是在请求的时候才生成的静态.测试方法.
    确认是真正的静态文件(服务器上确确实实存在文件的副本) 的情况下...
    不要用浏览器访问该静态文件.而是在服务器端直接用 vi 打开生成的静态文件,以确认数据是否更新.而不是用浏览器访问(可能访问的时候,才更新的数据) 这点一定要确认.楼主按我说的方法查看后.再来回话吧...:)  技术上的东西,要静下心来慢慢研究..
    如果真有突破磁盘IO的技术.我想不可能大家都没有听说过....
      

  8.   

    .NET可以监视SQL Server表中数据的改动,就即时引发一个事件.
    如果该网站实现这个事件,就可以即时创建静态页面于磁盘指定目录下.
    ——青蛙这样认为.
      

  9.   

    关键是创建的静态页面需要的是数据库改动后的内容。问题1: 静态页面的内容必须得改动后的内容,那是否需要先向数据库读取更新数据?读完以后,html能处理么?不能,只能通过web service来处理这个过程。如果不通过web service,如何实现呢,.net的话也是一种web service,用b/s概念套用c/s的东西而已。
      

  10.   

    不是很明白楼主所说问题,你是指像CMS这样的系统?后台更新数据库后,前台的更新问题?这样前台肯定需要感知到这个后台的变化,如果追求效率,那只能是用cache系统了,或数据库采用并行 内存数据库(自己设计数据库引擎,不用商业数据库),这样的话,所有处理都在内存中进行,与磁盘无关,这样倒是有可能的。
    详细讨论请与我联系 :QQ 28286880
      

  11.   

    呵呵,楼上的几位没有考虑到一个前提,不是一两个页面,而是以10W 为单为计的,所以WEB SERVICE ,.NET触发,根本不可能
      

  12.   

    可以做成伪静态与HTML文件并存, 访问是通过伪静态路径, 由程序检查对应的模板是否用到有改动的标签, 如果有,则由程序生成新的HTML文件,并输出返回给浏览者,
      

  13.   

    提问题的问题中--------核心问题是:网站后台数据库更新后,前台HTML自动更新其内容。
    绝对不是伪HTML,JS、IFRAME等功能,是真正的镶嵌到了HTML中,IE-查看-源文件 时真正能看到这些内容,而且HTML是几十万页。
    ----- 从这里来看,你还是先把 
    网站后台数据库更新后,前台HTML自动更新其内容
    这里好好的确认一下首先要明确   前台HTML自动更新其内容   达到一个什么程度
    比如上面某一位说的那样,你在服务器上面能够找到  通过 --- 前台HTML自动更新其内容  ---
    而生成的 html 文件么?  如果能找到,那你看看它和你最终通过客户端浏览器访问的内容是一样的么?首先请你确认一下这个问题   然后再来问问看看   应该会有你需要的问题的解的
     
      

  14.   

    IE-查看-源文件 时真正能看到这些内容,而且HTML是几十万页
    要明白  这并不能说明问题要做到这样,很容易实现
    但是并不能说, 通过查看源文件能看到内容  就是一定的静态了
      

  15.   

    更新10w+的 静态文件啊??
    磁盘能受的了?
    ===============================
    HTML模板中设置一个唯一的标签,标签对应数据库中某条数据,只要更新了数据库,那么所有包含该标签的HTML页都会立刻更新,几乎是没有延时的,并且HTML达到几十万页。有没有这样一种可能?
    10w+的静态文件 都include一个唯一标签的这个文件每次更新数据库,因为标签和数据库记录绑定
    这样,就生成一个 新的数据 的 标签文件因为所有10w+也不过是include这个 新标签文件 
    所以 就像lz认为的 更新了10w+的静态文件如果那样,倒是可以解释的通的每次更新数据库,将唯一绑定的文件写一下,这个应该没多少工作量吧就像静态文件 也用模板写一样 。
      

  16.   

    SHTML可以实现包含!
    <!--#include file="a.htm"-->几十W个页面都包含a.htm,输出的时候服务器会自动把<!--#include file="a.htm"-->替换为a.htm的内容。所以,当数据库更新的时候,只需要改a.htm就能实现几十w的网页实时更新!而且时间极短!更多看这里http://www.phpblog.cn/archives/2005/09/22/about_shtml.html