代码之家  ›  专栏  ›  技术社区  ›  Manu JCasso

如何在加载页面之前提交ajax请求

  •  2
  • Manu JCasso  · 技术社区  · 17 年前


    让我们假设需求声明不应该有直接的服务器端处理。

    5 回复  |  直到 17 年前
        1
  •  6
  •   swilliams    17 年前

    这听起来像是一个应该在呈现页面之前首先在服务器上完成的操作。如果有人禁用了javascript,会发生什么?

        2
  •  2
  •   Eric Wendelin    17 年前

    如果您不想依赖工具箱,可以创建自己的DOMReady函数,该函数看起来有点像:

    /* Usage: DOMReady(ajaxFunc); */
    function DOMReady(f) {
        if (!document.all) {
            document.addEventListener("DOMContentLoaded", f, false);
        } else {
            if (document.readystate == 'complete') { 
                window.setTimeout(f, 0);
            }
            else {
                //Add event to onload just if all else fails
                attachEvent(window, "load", f);
            }
        }
    }
    

    或者对于更复杂的解决方案: http://snipplr.com/view/6029/domreadyjs/

        3
  •  1
  •   Steve g    17 年前

    如果您只是运行带有Javascript的静态HTML,我建议您使用 JQuery

        4
  •  0
  •   Neall    17 年前

    我认为这应该是可能的,但不建议这样做。正确的做法是让服务器在发送页面之前完全确定页面的内容。

    如果图像下载速度慢或其他非HTML内容阻碍了您,请查看各种JavaScript库之一。我总是推荐 jQuery ,具有以下语法:

    $(document).ready(function() {
      // The DOM is fully loaded now, but images might still be loading.
    });
    
        5
  •  0
  •   James Curran    17 年前

    我认为,如果您使用内联javascript,应该在遇到它时立即执行:

    <HTML><HEAD>...</HEAD>
    <BODY>
    <script>
    document.write("This is written before anything else");
    </script>
    This come later.
    </BODY>
    </HTML>