【问题标题】:Javascript JQUERY AJAX: When Are These ImplementedJavascript JQUERY AJAX:这些何时实现
【发布时间】:2011-02-13 11:31:55
【问题描述】:

我正在学习 JavaScript。在这个优秀的网站上闲逛以收集情报。不断遇到有关 javascript、JQUERY、带有 AJAX 的 JQUERY、带有 JQUERY 的 javascript、仅 AJAX 的问题/答案。我的结论是:这些都是单独强大和有用的。我的困惑:如何确定使用哪种/哪种组合?

我已经得出结论,大多数浏览器都可以使用 javascript。例如,我可以使用

扩展一个简单的 HTML 页面
<html>
<body>

<script type="text/javascript">
document.write("Hello World!");
</script>

</body>
</html>

但是,在 Python/DJANGO 的范围内,其中许多问题与 JQUERY 和 AJAX 相关。在什么时候或在什么开发环境下,我会得出结论,仅 javascript 不会“削减它”,我需要实现 JQUERY 和/或 AJAX 和/或其他一些排列?

【问题讨论】:

  • jQuery 是一个 Javascript 库,不是 你 会实现的。

标签: javascript jquery python ajax django


【解决方案1】:
  • Javascript 是在浏览器中运行客户端的代码。
  • AJAX 是一个术语,用于指代 Javascript 直接联系网络服务器并获得响应的过程,而不是用户导航到不同的页面
  • jQuery 是一个 JavaScript 库,在 AJAX 和浏览器 DOM 之上提供易于使用的抽象
  • Django 是运行服务器端的 Python 代码

在某些情况下,您可以在客户端或服务器上执行相同的操作。然而,通常情况下,您通过问自己“需要使用的资源位于何处?”来确定是否应该在客户端/服务器端完成。例如,查询数据库将在网络服务器上完成,因为那是该资源所在的位置。相反,重新排列网页的 UI 是在客户端完成的,因为那是 UI 所在的位置。

单独使用 Javascript 总是可以“解决问题”,但 jQuery 带来的优势是它让事情变得更容易和更快,并且在做 AJAX 和 DOM 操作时解决了很多浏览器问题。

【讨论】:

    【解决方案2】:

    由于您是 Javascript 开发新手,我将尝试相关示例。

    您可以在 StackOverflow 上对问题进行投票。你的投票动作被发送到服务器,并在那里记录下来。如果没有 AJAX(和其他一些技术),整个页面都需要为该操作刷新。 AJAX 解决了与服务器异步通信的问题,无需重新加载整个页面。

    jQuery 是一个库,可以方便地访问常见的 Javascript 任务,例如 DOM 操作、AJAX 处理等。jQuery 还隐藏了浏览器差异并为最终用户提供了一致的界面。要说明这两点,请参阅以下示例:

    查找页面上的所有 div 元素

    // Javascript
    var divs = document.getElementsByTagName("div")
    
    // jQuery
    $("div")
    

    向按钮添加点击事件处理程序(说明浏览器差异)

    使用纯 Javascript,最好创建一个跨浏览器的方法来添加事件,因为您肯定不想每次都编写此代码。来源-http://www.scottandrew.com/weblog/articles/cbs-events

    function addEvent(obj, evType, fn, useCapture){
        if (obj.addEventListener) { // standards-based browsers
            obj.addEventListener(evType, fn, useCapture);
            return true;
        } else if (obj.attachEvent) { // IE
            var r = obj.attachEvent("on"+evType, fn);
            return r;
        } else { // some unknown browser
            alert("Handler could not be attached");
        }
    }
    

    ​一旦设置完成(仅限一次性),您就可以使用此功能将事件添加到任何元素。

    // Javascript
    var button = document.getElementById("buttonID");
    addEvent(button, "click", function() { alert("clicked"); }, false);
    
    // jQuery (contains code similar to above function to handle browser differences)
    $("#buttonID").click(function() { alert("clicked"); });
    

    AJAX 是 Javascript 的一部分,它本身并不是一项单独的技术。当您需要从服务器发送/接收数据时,您可以使用 AJAX 来避免进行整页刷新。

    jQuery、MooTools、Dojo、Ext.JS、Prototype.JS 和许多其他库提供了围绕 Javascript 的包装器,以抽象出浏览器的差异,并提供更容易使用的界面。问题是你想自己做所有这些重新工作吗?如果您不确定您可能需要做哪些返工,请研究常见任务的纯 Javascript 示例,例如 AJAX 调用、DOM 操作、事件处理,同时抽象出浏览器的怪癖,并将这些怪癖与 jQuery 等库中的示例进行比较,这可能是一个好的开始。

    【讨论】:

      【解决方案3】:

      原因和你选择使用 Django 而不是单独使用 Python 完全一样。

      jQuery 是一个 javascript 库,它将让您的生活更轻松并扩展 javascript。

      除了jQuery好用之外,我建议你先学习javascript,因为你应该在使用Django之前学习过python。

      继续:

      纯 javascript => 简单的代码,原生函数满足你的需要

      jQuery => 复杂的代码,丰富的应用,纯javascript中不存在的函数(例如$.each()方法)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-08
        • 1970-01-01
        • 2011-07-01
        • 2014-10-15
        相关资源
        最近更新 更多