风讯官方论坛FoosunCMS交流区Foosun4.x安装使用加速生成html速度问题,免费版太慢了!

1  /  1  页   1 跳转 查看:613

标题: 加速生成html速度问题,免费版太慢了!

加速生成html速度问题,免费版太慢了!

foosun 免费版 4.0sp5 生成静态页的速度太慢了,那能否改进呢?

看下以下几段JS代码.  系统使用了 ajax 来刷新生成页面.这个过程,网络响应就要减少速度.
关于这个,搜索一下,有位朋友已经做个插件出来改进了.
我这里就再来说下.

function Start_Refresh(url,Action){
        var myAjax = new Ajax.Request(
                url,
                {method:'get',
                parameters:Action,
                onComplete:Refresh_Receive
                }
                );
}
function Refresh_Receive(OriginalRequest){
        var check,goback;
        var percent=0;
        //goback="<a href=\"返回\" onclick=\"location.reload();return false;\">返回</a>";
        goback="<a href=\"返回\" onclick=\"$('RefreshMain').style.display='';$('RefreshSchedule').style.display='none';return false;\">返回</a>";
        if (OriginalRequest.responseText.indexOf("$")>-1){
                check=OriginalRequest.responseText.split("$");
                switch (check[0]) {
                        case "MF" :
                                $("RefreshLen").style.width ="100%";
                                $("RefreshLen").innerHTML=" <span class=\"xingmu\">100%</span>";
                                $('result_str').innerHTML="首页发布结束  <a href=\"http:\/\/<%= Request.Cookies("FoosunMFCookies")("FoosunMFDomain")&"\/"&Request.Cookies("FoosunMFCookies")("FoosunMFIndexFileName") %>\" target=\"_blank\">浏览首页<\/a>  "+goback;
                                countnum=1;
                                break;
                        case "Next" :
                                percent=(parseInt(check[2])/parseInt(check[1]))*100;
                                percent=Math.round(percent);
                                $("RefreshLen").style.width =percent+"%";
                                $("RefreshLen").innerHTML=" <span class=\"xingmu\">"+percent+"%</span>";
                                $('result_str').innerHTML="总共要发布" + check[1] + "条内容,已经发布" + check[2] + "条内容...";
                                //Start_Refresh("PublicSite/Public_Refresh.asp","");
                               
'看下面这几句,什么意思呢? countnum 是当前成功生成数量, G_REFRESH_NUM_TIME 应该是设置的设新频率.
'然后,再次提交,服器又再生成页面.
'其实觉得很奇怪,为什么要这样刷新呢?为什么不直接在服务器生成10个或者更多的页面呢?
'这绝对影响了生成速度.
                              if ((countnum % G_REFRESH_NUM_TIME)==0){
                                        window.setTimeout("Start_Refresh(\"PublicSite/Public_Refresh.asp\",\"\")",1000);
                                }else{
                                        Start_Refresh("PublicSite/Public_Refresh.asp","");
                                }
                                countnum++;
                                break;
                        case "End" :
                                $("RefreshLen").style.width ="100%";
                                $("RefreshLen").innerHTML=" <span class=\"xingmu\">100%</span>";
                                $('result_str').innerHTML="总共要发布" + check[1] + "条内容,已经发布" + (check[2]-1) + "条内容...";
                                $('result_str').innerHTML=$('result_str').innerHTML+"<br />发布结束  "+goback;
                                countnum=1;
                                break;
                        case "No" :
                                $('result_str').innerHTML="没有要发布的内容  "+goback;
                                countnum=1;
                                break;
                        default :
                                //alert(OriginalRequest.responseText);
                                //$('result_str').innerHTML=OriginalRequest.responseText;
                                //Start_Refresh("PublicSite/Public_Refresh.asp","");
                                $('result_str').innerHTML="发布失败,请与管理员联系。  "+goback+"<br>错误描述如下:ID:<span class=\"tx\">"+check[1]+"</span>,<span class=\"tx\">"+check[2]+"</span>";
                                //Start_Refresh("PublicSite/Public_Refresh.asp","");
                }
        }
        else{
                $('result_str').innerHTML="发布失败,请与管理员联系。  "+goback+"<br>错误描述如下:"+OriginalRequest.responseText;
        }
}

'还未看清楚,等下再发表如何改进
最后编辑biaosoft 最后编辑于 2008-07-13 23:01:47
引用
 

回复:加速生成html速度问题,免费版太慢了!

不错,支持一下
引用
 

回复:加速生成html速度问题,免费版太慢了!

支持一下,这个问题确实需要改进,否则会让XXX丝们溜走的
www.sure56.net  www.wujinhome.com  风讯FANS  QQ170067733
引用
 

回复:加速生成html速度问题,免费版太慢了!

哈哈,终于修改成功了!

快了N多!
引用
 

回复:加速生成html速度问题,免费版太慢了!

恩不错!
百度HI群号1087553欢迎加入!百度号cyxjq
引用
 

回复:加速生成html速度问题,免费版太慢了!

在Public_Refresh.asp文件中,修改了以下一些代码
注意一些类似
SESSION("COOKIES_REFRESH_FirstID")
这样的cookies变量,被我换成了 session

这个主要功能就是,超过8页以上的内容,分为4次刷新.这样,因网络延时所造成的生成速度慢的问题,可以解决.

但生成慢的问题,仍然没有彻底解决.因为foosun生成的过程中,太多次重复调用了.但仍有修改空间,不过太复杂,修改起来要花点时间.



Dim RefreshWaitCount
    p_Sql = Get_Sql
    f_Action=""
    if P_Count<=8 then                    '小于8页,不设置刷新,直接完成
    RefreshWaitCount=1
    else
    RefreshWaitCount=(P_Count-P_Count mod 8)*2/8        '总数分1/4刷新
    end if

do while (RefreshWaitCount>0)
   
    if p_Sql <> "" then
        p_Refresh_OK_TF = Refresh_One_Record(p_Sql,True)
        If p_Refresh_OK_TF=True then
            If Err Then
                Response.Write "Err$"&SESSION("COOKIES_REFRESH_FirstID")&"$"&Err.Description
                Response.End()
            Else
                if RefreshWaitCount < 2 or p_Index=0 then
                    Response.Write "Next$"&P_Count&"$"&p_Index+1
                    Exit do
                end if
            End If
        ElseIf p_Refresh_OK_TF=False then
            If Err Then
                Response.Write "Err$"&SESSION("COOKIES_REFRESH_FirstID")&"$"&Err.Description
                Response.End()
            Else
                Response.Write "End$"&P_Count&"$"&p_Index+1
                exit do
            End If
        Else
            Response.Write "Err$"&SESSION("COOKIES_REFRESH_FirstID")&"$"&Err.Description
            exit do
        End If
    else
        If Err Then
            Response.Write "Err$"&p_Index&"$"&Err.Description
            Response.End()
        Else
            Response.Write "No$$"
            exit do
        End If
    end if

p_Sql = Get_Sql
   
RefreshWaitCount=RefreshWaitCount-1

loop
引用
 

回复:加速生成html速度问题,免费版太慢了!

修改原理就是:

减少刷新次数,不需要重复的由用户响应之后才开始下一页的生成工作.这种如果网速慢的话,这样修改的话,效果非常明显.但是因为服务器一般被限制了CPU占用,所以这样修改方法,也不能达到很好的效果.而且可能还会导致你的网站CPU占用被占尽,而无法访问的情况.

我想修改,但是未完成的,是对foosun主生成函数的修改:这是治本的方法

原理是这样的: 因为 foosun 在多次使用了 for  next 等语句
例如:
for i=0 to 1000

for j= 1 to 100

nex t
next

如上,如果能减少, 最内层  for j 的次数,或减少代码,就可以极大的提高速度.既然我们在服务器连续执行数页的生成工作,那么一些重复的代码就没有必要,比如,我们可以把整个标签库缓存到变量,,而无需每次都去读数据库.
最后编辑biaosoft 最后编辑于 2008-07-14 11:33:20
引用
 

回复:加速生成html速度问题,免费版太慢了!

希望风讯官方能有所改进
中国贸易金融网:www.sinotf.com
引用
 

回复:加速生成html速度问题,免费版太慢了!

能不能把改过以后的代码贴出来呀
引用
 

回复:加速生成html速度问题,免费版太慢了!

希望楼主能够共享修改后的代码!在这我带大伙谢谢你了
引用
 

回复: 加速生成html速度问题,免费版太慢了!

支持
引用
 

回复:加速生成html速度问题,免费版太慢了!

感谢大家的建议,这点已经提交给官方的相关工作人员,他们会参考这些建议的,欢迎大家继续使用.
引用
 

回复:加速生成html速度问题,免费版太慢了!

这个确实是个问题,希望官方进一步修正。
承接整站开发、风讯程序修改、功能定制、插件制作、系统整合、标签制作、网站升级……
技术为本,信誉至上! 定制QQ:83862966
部分修改案例
引用
 
1  /  1  页   1 跳转

版权所有 Foosun.NET  NewsCMS.com  NewsIDC.COM  Sitemap

Powered by Discuz!NT 2.0.1115    Copyright © 2001-2008 Comsenz Inc.
Processed in 0 second(s) (Cached).
返顶部