小编dse*_*rav的帖子

导致两件事并行加载?

我正在编写一些PHP,它会进行大量处理,然后生成结果报告.以前它会做一个定期的flush(),但我们正在转向Zend Framework,不能再这样做了.相反,我希望在生成报告时有一些更新的状态显示.所以我创建了一个在iframe中加载的进度条,为进度条更新操作和报告生成操作添加了共享内存,并导致输出通过xmlhttprequest加载.一切正常.我的问题是浏览器想要串行而不是并行地执行这两个请求,因此它将请求进度条然后BLOCK直到进度条完成之前它请求实际输出.这意味着该过程永远不会结束,因为真正的工作永远不会开始.

我整个上午都在搜索这个问题并空手而归.有没有办法导致两个连接,或者我只是搞砸了?

我的下一个操作是将处理分开一些,并使状态更新操作执行实际工作,保存结果,然后使用其他操作转储它.这将是非常痛苦的,我想避免它.

编辑:这是javascript,按要求:

    function startProgress()
    {
        var iFrame = document.createElement('iframe');
        document.getElementsByTagName('body')[0].appendChild(iFrame);
        iFrame.id = 'progressframe';            
        iFrame.src = '/report/progress';
    }

    function Zend_ProgressBar_Update(data)
    {
        document.getElementById('pg-percent').style.width = data.percent + '%';
        document.getElementById('pg-text-1').innerHTML = data.text;
        document.getElementById('pg-text-2').innerHTML = data.text;
    }

    function Zend_ProgressBar_Finish()
    {
        document.getElementById('pg-percent').style.width = '100%';
        document.getElementById('pg-text-1').innerHTML = 'Report Completed';
        document.getElementById('pg-text-2').innerHTML = 'Report Completed';
        document.getElementById('progressbar').style.display = 'none'; // Hide it
    }

    function ajaxTimeout(){
        xmlhttp.abort();
        alert('Request timed out');
    }

    var xmlhttp;
    var xmlhttpTimeout;

    function loadResults(){
        if (window.XMLHttpRequest){
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new …
Run Code Online (Sandbox Code Playgroud)

javascript php zend-framework

8
推荐指数
1
解决办法
556
查看次数

标签 统计

javascript ×1

php ×1

zend-framework ×1