[前端系列第6弹]Ajax简明教程:轻松实现Web页面的异步交互

2023-11-14

在这篇文章中,我将介绍Ajax的基本概念、原理、优缺点、实现方法和应用场景,以及如何使用它来实现Web页面的异步交互。还将给一些简单而实用的例子,让你可以跟着我一步一步地编写自己的Ajax代码。

目录

一、什么是Ajax

二、如何使用Ajax

(一)JavaScript中使用Ajax

(二)JQuery中使用Ajax

三、Ajax的应用场景

(一)表单验证

(二)自动补全

(三)无刷新分页

(四)即时聊天

(五)在线地图


一、什么是Ajax

        Ajax是Asynchronous JavaScript and XML(异步JavaScript和XML)的缩写,它是一种Web技术,可以让浏览器与服务器进行数据交换,并在不刷新整个页面的情况下更新部分页面内容。

Ajax的优点是:

  • Ajax可以提高Web页面的性能和用户体验,因为它可以减少服务器请求的次数和数据量,以及避免页面刷新带来的闪烁和延迟。
  • Ajax可以实现Web页面与服务器之间的实时通信,因为它可以在后台与服务器进行数据交换,而不影响用户对页面的操作。
  • Ajax可以实现Web页面与用户之间的动态交互,因为它可以根据用户输入或事件来更新页面内容,而不需要提交表单或跳转页面。

Ajax的缺点是:

  • Ajax可能会增加Web开发的复杂度和难度,因为它需要考虑浏览器兼容性、错误处理、安全性等问题。
  • Ajax可能会影响Web页面的可访问性和可用性,因为它可能导致浏览器后退按钮失效、地址栏URL不变化、搜索引擎索引不到等问题。
  • Ajax可能会消耗更多的客户端资源和带宽,因为它需要加载更多的JavaScript代码和发送更多的HTTP请求。

Ajax的示例:

// 创建一个XMLHttpRequest对象
var xhr = new XMLHttpRequest();

// 设置请求方法、URL和异步标志
xhr.open("GET", "data.txt", true);

// 设置请求状态变化时的回调函数
xhr.onreadystatechange = function() {
  // 判断请求是否完成并成功
  if (xhr.readyState == 4 && xhr.status == 200) {
    // 获取服务器返回的文本数据
    var data = xhr.responseText;
    // 在页面中显示数据
    document.getElementById("content").innerHTML = data;
  }
};

// 发送请求
xhr.send();

二、如何使用Ajax

        要使用Ajax,需要了解一些基本的概念和步骤,如XMLHttpRequest对象、HTTP请求和响应、JSON格式等。以下是一些常用的编程语言如何进行Ajax的示例:

(一)JavaScript中使用Ajax

        JavaScript是最早支持和使用Ajax的编程语言,它提供了一个内置的对象:XMLHttpRequest。XMLHttpRequest对象可以让你创建和发送HTTP请求,并在后台接收服务器返回的数据。一个JavaScript中进行Ajax的示例如下:

// 创建一个XMLHttpRequest对象
var xhr = new XMLHttpRequest();

// 设置请求方法、URL和异步标志
xhr.open("GET", "data.txt", true);

// 设置请求状态变化时的回调函数
xhr.onreadystatechange = function() {
  // 判断请求是否完成并成功
  if (xhr.readyState == 4 && xhr.status == 200) {
    // 获取服务器返回的文本数据
    var data = xhr.responseText;
    // 在页面中显示数据
    document.getElementById("content").innerHTML = data;
  }
};

// 发送请求
xhr.send();

        这个示例是一个简单的Ajax代码,它向服务器发送一个GET请求,获取data.txt文件中的文本数据,并在页面中显示。如果运行这个代码,你会看到页面中没有刷新,但是内容却更新了。

(二)JQuery中使用Ajax

        jQuery是一个轻量级的JavaScript库,它封装了JavaScript的常用功能,并提供了一种简洁而易用的接口。jQuery提供了一系列的方法,可以你方便地使用Ajax进行数据交互,如ajax(), get(), post(), load()等。一个jQuery中进行Ajax的示例如下:

// 使用ajax()方法向服务器发送一个GET请求,获取data.json文件中的JSON数据,并在成功时打印出来
$.ajax({
  url: "data.json",
  type: "GET",
  dataType: "json",
  success: function(data) {
    console.log(data);
  }
});

// 使用get()方法向服务器发送一个GET请求,获取data.json文件中的JSON数据,并在成功时打印出来,等同于使用ajax()方法
$.get("data.json", function(data) {
  console.log(data);
});

// 使用post()方法向服务器发送一个POST请求,传递一个包含name和age两个参数的对象,并在成功时打印出服务器返回的数据
$.post("data.php", {name: "Alice", age: 25}, function(data) {
  console.log(data);
});

// 使用load()方法向服务器发送一个GET请求,获取data.html文件中的HTML内容,并将其加载到id为content的元素中
$("#content").load("data.html");

        这些示例都是使用jQuery来实现Ajax功能的代码,它们都可以在不刷新页面的情况下与服务器进行数据交换,并根据返回的数据更新页面内容。

三、Ajax的应用场景

        Ajax可以应用于很多Web页面的动态功能,如表单验证、自动补全、无刷新分页、即时聊天、在线地图等。以下是一些常见的Ajax应用场景的示例:

(一)表单验证

        表单验证是指在用户提交表单之前,对表单中的输入数据进行合法性和正确性的检查,以避免错误或恶意的数据被发送到服务器。使用Ajax可以实现实时的表单验证,即在用户输入数据时,就向服务器发送请求,验证数据是否有效,并在页面中显示提示信息。这样可以提高用户体验和数据安全性。一个表单验证的示例如下:

<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    // 定义一个函数,用于向服务器发送Ajax请求,验证用户名是否已存在
    function checkUsername() {
      // 获取用户名输入框的值
      var username = $("#username").val();
      // 判断用户名是否为空
      if (username == "") {
        // 清空提示信息
        $("#message").html("");
      } else {
        // 使用get()方法向服务器发送一个GET请求,传递username参数,并在成功时显示服务器返回的信息
        $.get("check.php", {username: username}, function(data) {
          $("#message").html(data);
        });
      }
    }
  </script>
</head>
<body>
  <form>
    <p>用户名:<input type="text" id="username" onkeyup="checkUsername()"></p>
    <p id="message"></p>
    <p>密码:<input type="password" id="password"></p>
    <p><input type="submit" value="注册"></p>
  </form>
</body>
</html>

        这个示例是一个简单的表单验证代码,它使用Ajax向服务器发送请求,验证用户名是否已存在,并在页面中显示提示信息。如果运行这个代码,会看到当你在用户名输入框中输入数据时,就会有相应的信息显示出来。

(二)自动补全

        自动补全是指在用户输入数据时,根据用户输入的部分内容,向服务器请求并显示相关的候选内容,让用户可以快速地选择或输入完整的内容。使用Ajax可以实现实时的自动补全,即在用户输入数据时,就向服务器发送请求,获取并显示候选内容。这样可以提高用户体验和输入效率。一个自动补全的示例如下:

<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    // 定义一个函数,用于向服务器发送Ajax请求,获取与输入内容相关的候选内容,并显示在下拉列表中
    function autocomplete() {
      // 获取输入框的值
      var keyword = $("#keyword").val();
      // 判断输入框是否为空
      if (keyword == "") {
        // 隐藏下拉列表
        $("#list").hide();
      } else {
        // 使用get()方法向服务器发送一个GET请求,传递keyword参数,并在成功时显示服务器返回的数据
        $.get("search.php", {keyword: keyword}, function(data) {
          // 显示下拉列表
          $("#list").show();
          // 将服务器返回的数据设置为下拉列表的内容
          $("#list").html(data);
        });
      }
    }
  </script>
</head>
<body>
  <form>
    <p>搜索:<input type="text" id="keyword" onkeyup="autocomplete()"></p>
    <p><input type="submit" value="搜索"></p>
  </form>
  <div id="list" style="display: none;"></div>
</body>
</html>

        这个示例是一个简单的自动补全代码,它使用Ajax向服务器发送请求,获取与输入内容相关的候选内容,并在页面中显示。如果运行这个代码,会看到当你在搜索框中输入数据时,就会有相应的候选内容显示出来。

(三)无刷新分页

        无刷新分页是指在Web页面中显示一部分数据,当用户点击下一页或上一页时,不刷新整个页面,而是向服务器请求并显示另一部分数据。使用Ajax可以实现无刷新分页,即在用户点击分页按钮时,就向服务器发送请求,获取并显示相应的数据。这样可以提高Web页面的性能和用户体验。一个无刷新分页的示例如下:

<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    // 定义一个变量,用于存放当前页码,默认为1
    var page = 1;

    // 定义一个函数,用于向服务器发送Ajax请求,获取并显示指定页码的数据
    function showPage(page) {
      // 使用get()方法向服务器发送一个GET请求,传递page参数,并在成功时显示服务器返回的数据
      $.get("page.php", {page: page}, function(data) {
        // 将服务器返回的数据设置为id为content的元素的内容
        $("#content").html(data);
      });
    }

    // 定义一个函数,用于处理上一页按钮的点击事件
    function prevPage() {
      // 判断当前页码是否大于1
      if (page > 1) {
        // 将当前页码减1
        page--;
        // 调用showPage()函数,显示上一页的数据
        showPage(page);
      }
    }

    // 定义一个函数,用于处理下一页按钮的点击事件
    function nextPage() {
      // 判断当前页码是否小于总页数(这里假设总页数为5)
      if (page < 5) {
        // 将当前页码加1
        page++;
        // 调用showPage()函数,显示下一页的数据
        showPage(page);
      }
    }

    // 在文档加载完成后调用showPage()函数,显示第一页的数据
    $(document).ready(function() {
      showPage(page);
    });
  </script>
</head>
<body>
  <div id="content"></div>
  <button onclick="prevPage()">上一页</button>
  <button onclick="nextPage()">下一页</button>
</body>
</html>

        这个示例是一个简单的无刷新分页代码,它使用Ajax向服务器发送请求,获取并显示指定页码的数据,并在页面中提供上一页和下一页按钮。如果运行这个代码,会看到当你点击分页按钮时,页面中只有表格部分更新了。

(四)即时聊天

        即时聊天是指在Web页面中实现用户之间的实时通信,让用户可以发送和接收文本、图片、音频、视频等信息。使用Ajax可以实现即时聊天,即在用户发送或接收信息时,就向服务器发送或请求数据,并在页面中显示。这样可以提高Web页面的交互性和社交性。一个即时聊天的示例如下:

<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    // 定义一个变量,用于存放最后一条消息的ID,默认为0
    var lastId = 0;

    // 定义一个函数,用于向服务器发送Ajax请求,获取并显示新的消息
    function getMessages() {
      // 使用get()方法向服务器发送一个GET请求,传递lastId参数,并在成功时显示服务器返回的数据
      $.get("chat.php", {lastId: lastId}, function(data) {
        // 判断服务器返回的数据是否为空
        if (data != "") {
          // 将服务器返回的数据追加到id为messages的元素中
          $("#messages").append(data);
          // 获取最后一条消息的ID,并赋值给lastId变量
          lastId = $("#messages li:last").attr("id");
          // 将id为messages的元素滚动到底部,以显示最新的消息
          $("#messages").scrollTop($("#messages")[0].scrollHeight);
        }
      });
    }

    // 定义一个函数,用于向服务器发送Ajax请求,发送用户输入的消息
    function sendMessage() {
      // 获取用户输入框的值
      var message = $("#message").val();
      // 判断用户输入框是否为空
      if (message != "") {
        // 使用post()方法向服务器发送一个POST请求,传递message参数,并在成功时清空用户输入框
        $.post("chat.php", {message: message}, function(data) {
          $("#message").val("");
        });
      }
    }

    // 在文档加载完成后调用getMessages()函数,获取并显示新的消息
    $(document).ready(function() {
      getMessages();
    });

    // 每隔一秒调用getMessages()函数,获取并显示新的消息
    setInterval(getMessages, 1000);

    // 在用户输入框按下回车键时调用sendMessage()函数,发送用户输入的消息
    $("#message").keydown(function(event) {
      if (event.keyCode == 13) {
        sendMessage();
      }
    });

    // 在发送按钮点击时调用sendMessage()函数,发送用户输入的消息
    $("#send").click(function() {
      sendMessage();
    });
  </script>
</head>
<body>
  <div id="chat">
    <ul id="messages"></ul>
    <input type="text" id="message" placeholder="请输入消息">
    <button id="send">发送</button>
  </div>
</body>
</html>

        这个示例是一个简单的即时聊天代码,它使用Ajax向服务器发送或请求数据,并在页面中显示。如果运行这个代码,会看到当你或其他用户发送或接收消息时,页面中只有消息列表部分更新了。

(五)在线地图

        在线地图是指在Web页面中显示地理位置、路线、交通、景点等信息,让用户可以浏览和查询地图数据。使用Ajax可以实现在线地图,即在用户拖动或缩放地图时,就向服务器请求并显示相应的地图数据。这样可以提高Web页面的功能性和实用性。一个在线地图的示例如下:

<html>
<head>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="https://api.map.baidu.com/api?v=3.0&ak=your_ak"></script>
  <script>
    // 定义一个变量,用于存放百度地图对象
    var map;

    // 定义一个函数,用于初始化百度地图
    function initMap() {
      // 创建一个百度地图对象,并设置中心点和缩放级别
      map = new BMap.Map("map");
      map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
      // 启用滚轮缩放功能
      map.enableScrollWheelZoom(true);
      // 添加一个导航控件
      map.addControl(new BMap.NavigationControl());
      // 添加一个比例尺控件
      map.addControl(new BMap.ScaleControl());
      // 添加一个缩略图控件
      map.addControl(new BMap.OverviewMapControl());
      // 添加一个地图类型控件
      map.addControl(new BMap.MapTypeControl());
    }

    // 定义一个函数,用于向服务器发送Ajax请求,获取并显示指定位置的天气信息
    function getWeather(point) {
      // 使用get()方法向服务器发送一个GET请求,传递point参数,并在成功时显示服务器返回的数据
      $.get("weather.php", {point: point}, function(data) {
        // 将服务器返回的数据设置为id为weather的元素的内容
        $("#weather").html(data);
      });
    }

    // 在文档加载完成后调用initMap()函数,初始化百度地图
    $(document).ready(function() {
      initMap();
    });

    // 在百度地图对象添加拖动结束事件的监听器,当用户拖动地图时调用getWeather()函数,获取并显示当前中心点的天气信息
    map.addEventListener("dragend", function() {
      var center = map.getCenter();
      var point = center.lng + "," + center.lat;
      getWeather(point);
    });
  </script>
</head>
<body>
  <div id="map" style="width: 800px; height: 600px;"></div>
  <div id="weather"></div>
</body>
</html>

        这个示例是一个简单的在线地图代码,它使用Ajax向服务器发送请求,获取并显示指定位置的天气信息,并在页面中提供百度地图。如果运行这个代码,会看到当你拖动或缩放地图时,页面中只有天气信息部分更新了。


以上就是本文的全部内容啦,学习学习~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[前端系列第6弹]Ajax简明教程:轻松实现Web页面的异步交互 的相关文章

  • 获取单词中重复次数最多的字母的数量

    我正在尝试计算单词中重复次数最多的字母的数量 function GreatestCount str var count for var i 0 i
  • 等待 JavaScript 中 Json 调用完成

    我正在使用下面的json调用在我的 javascript 方法中 function go123 var cityName var temp getJSON https abc in api city callback args functi
  • 从 JavaScript 中 Firebase 数据库的查询结果中获取特定子项的值

    我在 Firebase 上有这个示例数据库 样本数据库 我有一个index html 其中有这两个输入文本 div class login form h2 Login Form h2 div
  • 如何使用基于 Spring MVC 注解的 Portlet 控制器通过 AJAX 呈现 JSON 视图/响应?

    在过去的六个小时里 我在 Google 和 stackoverflow 上搜索了这个问题的答案 我最初是一名 PHP 开发人员 所以请耐心等待 从 PHP 控制器返回 JSON 数组非常简单 我正在使用 Spring MVC 3 0 我只想
  • 表单未使用 AJAX 提交

    再次更新 如果有人关心的话 我之前发布的解决方案由于某种原因停止工作 我在 ajax 请求中包含了 beforeSend 并将验证表单的 js 部分粘贴到其中 现在就像一个魅力 form on submit function e e pre
  • IE 9 的子元素不透明,我无法使用 captify 阻止它

    好的 我正在使用一段名为 Captify 的 javascript 它为您的图像添加了一个带有文本的小弹出窗口 适用于所有接受 IE9 的浏览器 IE9 会淡化弹出 div 中的所有内容 我已阅读其子元素问题 但无法修复它 由于在网上任何地
  • jquery/javascript 处理后移至命名锚点

    在进行一些 jquery 处理后 如何将焦点移动到同一页面上的不同部分 名为锚点 函数 ABC 进行一些处理 然后 我需要将用户移动到同一页面上的某个部分 页面下方 您可以使用下面的代码将屏幕滚动到 div 只需更改选择器以匹配您要滚动到的
  • KineticJS - 将舞台缩放到视口

    我正在努力将默认分辨率设置为 1366x756 我会根据视口来放大和缩小它 类似于此处显示的示例 http blogs msdn com b davrous archive 2012 04 06 modernizing your html5
  • 按自定义字母顺序对数组进行排序

    如何对这样的数组进行排序 apple very auto tom tim violet 要按 v a t x b 等排序 不按字母顺序 violet very auto tom tim 在脚本中 我会做这样的事情 myArray sort
  • 如何最好地实现多个重叠元素的翻转和推出事件?

    Problem 我正在开发一个网站 其中有一个 拨号盘 显示代表伞式公司不同部门的多个选项卡 目前我已经用 HTML CSS 准备好了一切 每个选项卡的定位 内圈处于较高位置z index因为选项卡在滚动时需要向外动画 我可以实现这部分 选
  • 将服务连接到现有的流星帐户

    我正在设置一个流星应用程序 其中涉及使用用户名和密码进行注册 然后希望将该帐户与 Facebook 和 Twitter 连接起来 我只需使用帐户包即可轻松启动并运行第一部分 但是当我有一个登录用户调用 Meteor loginWithFac
  • Node.js 和 Express:异步操作后如何返回响应

    我是 Node js 新手 所以我仍然对异步函数和回调很感兴趣 我现在的难题是如何在异步操作中从文件读取数据后返回响应 我的理解是发送回复的工作方式如下 这对我有用 app get search function req res res s
  • 替换 Javascript 中的引号?

    对于我正在制作的网络应用程序 我将收到文本字符串 其中偶尔包含引号 因为我接下来要 document writing 字符串 所以需要将它们更改为撇号或转义 我该怎么做 因为当我尝试时它似乎不起作用 特别是我认为因为字符串的引号阻止了脚本的
  • 单击窗口后才检测到 keydown

    在我的 Web 应用程序中 我有一个用于打开菜单的键的事件侦听器 仅当我单击页面上的任意位置后 此功能才可以正常工作 我尝试将焦点添加到窗口加载 但这仍然不会让 keydown 函数运行 直到我单击页面上的某个位置之后 有谁知道这是否可能
  • 如何在 Javascript 中将字符串数组转换为特定的树结构

    我从后端获取文件路径列表 它代表文件夹结构 如下所示 paths path to file1 doc path to file2 doc foo bar doc 路径的长度是任意的 为了使用文件树组件 角度2树组件 https github
  • 如何逐步绘制矢量路径? (拉斐尔.js)

    如何逐步动画化矢量路径 就像它被绘制一样 换句话说 慢慢地逐像素地显示路径 我在用着Rapha l js but如果您的答案不是特定于库的 例如可能有一些通用的编程模式可以完成此类事情 我对矢量动画相当陌生 欢迎 使用直线路径很容易做到 就
  • 垃圾收集器不适用于 NodeJS / Chrome 中的类型化数组

    我最初将其记录为原项目中的一个问题 https github com nodejs help issues 3590 它立即转移到帮助主题 没有很好的解释 所以现在我想在这里提问 如果我们在 NodeJS v14 v16 v17 中运行以下
  • addEventListener keydown 不起作用

    我在互联网上找到了一些基本的 Pong 代码 并尝试添加按键 代码在这里 http cssdeck com labs ping pong game tutorial with html5 canvas and sounds http css
  • Javascript:修改原型不会影响现有实例[重复]

    这个问题在这里已经有答案了 我创建了原型的 2 个实例 更改了原型中的函数 更改反映在两个实例中 很棒 但是 当我通过删除该函数来修改原型时 该函数对于现有实例仍然存在 function A this name cool A prototy
  • 截断段落前 100 个字符并隐藏段落的其余内容,以通过更多/更少链接显示/隐藏其余内容

    我有一个超过 500 个字符的段落 我只想获取最初的 100 个字符并隐藏其余部分 我还想在 100 个字符旁边插入 更多 链接 单击更多链接时 整个段落应显示并编辑文本 更多 到 更少 单击 更少 时 它应切换行为 段落是动态生成的 我无

随机推荐

  • ICLR 2023

    PaperWeekly 原创 作者 黄融杰 单位 浙江大学 研究方向 语音翻译 语音到语音翻译 S2ST 对于打破语言壁垒与沟通障碍非常有益 传统的 S2ST 系统通常由语音识别 ASR 机器翻译 MT 和语音合成 TTS 三部分组成 与这
  • NewBing、Andi、Phind、Perplexity 还有国产kuaisou五个AI搜索引擎的介绍和对比

    NewBing NewBing是微软推出的新一代AI搜索引擎 它基于OpenAI的下一代大语言模型 比ChatGPT更强大 专门为搜索定制 NewBing可以理解自然语言的问题 生成简洁 准确 有趣的回答 并提供相关的链接和图片 NewBi
  • docker 启动mysql5.7_在Docker上面安装/启动、运行、挂载MySQL5.7

    下载文档请看 https hub docker com r MysqL MysqL server 一 下载镜像 执行命令 docker pull MysqL MysqL server 5 7 查看命令 docker images 运行Mys
  • 【Java虚拟机】第三章、jvm运行期优化,解释器,编译器(AOT静态编译,JIT动态编译)

    已经第三章了 看了前两章是不是有点懵 或者开始意识到了什么 或者整个串联起来了 回顾一下 第一张主要讲的是jvm怎么创建 第二章讲的是jvm内存结构 和番外篇class加载过程 那么我们再结合这一章解释器和编译器 静态和动态编译 把他们串到
  • 零基础小白入门Python,值得看的几本书籍

    Python目前是全球4大流行编程语言之一 根据今年TIOBE最新排名 Python已超越C 与Java C C 一起成为全球前4大最流行语言 指数变化一直呈现出上升的趋势 TIOBE最新排名 众所周知 Python应用广泛 涵盖后端开发
  • 创业因何维艰,细数可能会死的几个关键节点

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 云视链等几个创业团队被扒皮之后 创业者的品行问题开始被摆到了桌面上来讨论 整个社会开始了一场 创业者 的反思潮 而 霸道总裁 余佳文不合适宜的言论再一次将这股浪潮推向了巅峰
  • 获取磁盘信息函数statvfs()

    对应的头文件 include
  • 【ES】Elasticsearch 简介

    大数据开发经常用到 Elasticesearch 今天做一下介绍 1 Elasticsearch 简介 Elaticsearch 简称为 ES 是一个开源的高扩展的分布式全文检索引擎 特点 近乎实时的存储 检索数据 扩展性好 可以扩展到上百
  • 元组的详细操作

    一 创建元组 name chinese gansu beijing 创建空元组 name 元组中只包含一个元素时 需要在元素后面添加逗号消除歧义 name chinese 二 访问元组 元组可以使用下标索引来访问元组中的值 name chi
  • RK356x Android11更换默认的Launcher

    1 开发环境 ubuntu版本 18 04 开发平台 RK356x Android版本 android11 2 目的 android11 系统自带了一个启动器Launcher3 在android源码路径下的packages apps Lau
  • 机器学习之深度神经网络

    目录 卷积神经网络与全连接神经网络 前向后向传播推导 通用手写体识别模型 人脸识别模型 电影评论情感分析模型 卷积神经网络与全连接神经网络 卷积神经网络 Convolutional Neural Network CNN 和全连接神经网络 F
  • 数据结构——普里姆(Prim)算法

    普里姆算法 Prim算法 图论中的一种算法 可在加权连通图里搜索最小生成树 意即由此算法搜索到的边子集所构成的树中 不但包括了连通图里的所有顶点 且其所有边的权值之和亦为最小 以下是数据结构中关于普里姆算法的操作 编程风格参考严蔚敏版数据结
  • 实施运维企业面试题-5

    NETWORK 1 请描述 TCP IP 协议中主机与主机之间通信的三要素 参考答案 IP 地址 IP address 子网掩码 subnet mask IP 路由 IP router 2 请描述 IP 地址的分类及每一类的范围 参考答案
  • Graphormer复现碎碎念

    一 简介 Graphormer https github com microsoft Graphormerhttps github com microsoft Graphormer 二 安装 使用 install sh安装 前面是pip直接
  • localStorage的过期时间设置的方法?——和派孔明

    我们都知道localStorage不主动删除 永远不会销毁 那么如何设置localStorage的过期时间呢 今天我们来一起尝试一下
  • C++与STL基础二:栈stack与前中后缀表达式的应用

    C 与STL基础二 栈stack与前中后缀表达式的应用 栈 stack 是一种具有特定操作规则的数据结构 它遵循后进先出 LIFO 的原则 在C 中 我们可以使用STL 标准模板库 中的stack类来实现栈的功能 本文将介绍栈及其常见应用之
  • Python之numpy教程(二):运算、索引、切片

    1 numpy数组的特点在于 大小相等的数组之间 任何算数运算都会将运算应用到元素级 请看下面的例子 arr np array 1 2 3 4 5 6 arr输出 array 1 2 3 4 5 6 arr arr输出 array 1 4
  • opencv实现阈值分割

    文章目录 基础函数 直方图阈值 实现 threshold 函数使用 三角法阈值 实现 迭代法阈值 算法步骤 Python语法补充 实现 大津法 理论 cv实现 底层复现 自适应阈值 理论 具体操作步骤 优化 CV实现 底层复现 基础函数 在
  • 基于SSM+Vue的汽车售票网站的设计与实现

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 采用Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave
  • [前端系列第6弹]Ajax简明教程:轻松实现Web页面的异步交互

    在这篇文章中 我将介绍Ajax的基本概念 原理 优缺点 实现方法和应用场景 以及如何使用它来实现Web页面的异步交互 还将给一些简单而实用的例子 让你可以跟着我一步一步地编写自己的Ajax代码 目录 一 什么是Ajax 二 如何使用Ajax