2024-08-15



// 引入axios库
const axios = require('axios');
 
// 创建axios实例,可以添加配置
const instance = axios.create({
  baseURL: 'https://api.example.com', // 所有请求的基地址
  timeout: 1000, // 请求超时时间
  headers: {'X-Custom-Header': 'foobar'} // 自定义头部
});
 
// 发送GET请求
instance.get('/endpoint')
  .then(response => {
    console.log(response.data); // 处理响应数据
  })
  .catch(error => {
    console.error(error); // 处理错误情况
  });
 
// 发送POST请求
instance.post('/endpoint', {
  firstName: 'Fred',
  lastName: 'Flintstone'
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

这段代码展示了如何使用axios库创建一个axios实例,并设置了基地址、超时时间和自定义头部。然后使用这个实例分别发送了GET和POST请求,并在Promise的then方法中处理了响应数据,在catch方法中处理了错误情况。这是学习AJAX和axios的一个很好的起点。

2024-08-15

Amaze UI 是一款轻量级的前端框架,主要用于快速开发Web应用和网站。以下是使用Amaze UI创建一个简单页面的基本HTML结构示例:




<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title>Amaze UI 示例</title>
    <link rel="stylesheet" href="path/to/amazeui/css/amazeui.min.css">
    <script src="path/to/amazeui/js/amazeui.min.js"></script>
</head>
<body>
    <header class="am-header">
        <h1 class="am-header-title">我的Web页面</h1>
    </header>
 
    <nav class="am-navbar am-navbar-default">
        <ul class="am-navbar-nav am-nav am-nav-pills">
            <li class="am-active"><a href="">首页</a></li>
            <li><a href="">关于我们</a></li>
            <li class="am-dropdown" data-am-dropdown>
              <a class="am-dropdown-toggle" data-am-dropdown-toggle href="javascript:;">
                  下拉菜单 <span class="am-icon-caret-down"></span>
              </a>
              <ul class="am-dropdown-content">
                  <li class="am-dropdown-header">标题</li>
                  <li><a href="">1. 菜单项</a></li>
                  <li><a href="">2. 菜单项</a></li>
                  <li class="am-divider"></li>
                  <li><a href="">3. 菜单项</a></li>
              </ul>
            </li>
        </ul>
    </nav>
 
    <div class="am-jumbotron">
        <h1>Hello, world!</h1>
        <p>Amaze UI 为开发者提供优雅的Web界面,简约而不简单,力求解决更多常规问题。</p>
        <p><a href="http://amazeui.org/getting-started" class="am-btn am-btn-primary">开始使用</a></p>
    </div>
 
    <footer class="am-footer">
        <div class="am-footer-switch">
            <span class="am-footer-btn am-footer-btn-source">源码</span>
            <span class="am-footer-btn am-footer-btn-buy">购买</span>
        </div>
        <div class="am-footer-content">
            <div class="am-footer-copyright">
                <p>Amaze UI © 2011-2015</p>
            </div>
        </div>
    </footer>
 
    <!-- 这里是你的内容 -->
 
    <script>
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
        ga('create', 'UA-XXXXX-Y', 'auto');
    
2024-08-15

在学习AJAX阶段,我们通常会使用JavaScript内置的XMLHttpRequest对象或者现代的fetchAPI来发送异步的HTTP请求。以下是使用这两种方式的简单示例:

使用XMLHttpRequest的示例:




var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com/data", true);
 
xhr.onreadystatechange = function () {
  if (xhr.readyState == 4 && xhr.status == 200) {
    // 请求成功
    var response = JSON.parse(xhr.responseText);
    console.log(response);
  }
};
 
xhr.send();

使用fetch API的示例:




fetch("https://api.example.com/data")
  .then(response => {
    if (response.ok) {
      return response.json();
    }
    throw new Error('Network response was not ok.');
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('There has been a problem with your fetch operation:', error);
  });

这两种方式都可以用来发送异步的HTTP请求,fetch API是现代的方法,它提供了更好的异步流和错误处理,而XMLHttpRequest是较旧的方式,但在所有现代浏览器中都得到支持。

2024-08-15

AJAX 是 Asynchronous JavaScript and XML 的缩写,是一种创建交互式网页的技术。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Webpack 是一个模块打包工具,它能把各种资源,例如 JavaScript、CSS、图片等都作为模块来处理和利用。Git 是一个分布式版本控制系统,用于跟踪计算机文件的变化并协调不同用户之间的工作。

以下是使用 AJAX、Node.js、Webpack 和 Git 的一个基本示例:

  1. 创建一个简单的 HTML 页面,用于发送 AJAX 请求:



<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AJAX Example</title>
</head>
<body>
    <button id="sendRequest">Send Request</button>
    <script src="bundle.js"></script>
</body>
</html>
  1. 创建一个 JavaScript 文件,用于初始化 AJAX 请求:



// app.js
document.getElementById('sendRequest').addEventListener('click', function() {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "http://localhost:3000/api/data", true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            alert(xhr.responseText);
        }
    };
    xhr.send();
});
  1. 创建一个 Node.js 服务器,用于响应 AJAX 请求:



// server.js
const express = require('express');
const app = express();
 
app.get('/api/data', (req, res) => {
    res.send('Hello from server!');
});
 
app.listen(3000, () => {
    console.log('Server running on port 3000');
});
  1. 使用 Webpack 来打包你的 JavaScript 文件:



// webpack.config.js
module.exports = {
    entry: './app.js',
    output: {
        filename: 'bundle.js'
    }
};
  1. 使用 Git 来管理你的代码版本。

确保你已经安装了 Node.js 和 npm,然后通过 npm 安装 express:




npm install express

同时,确保安装了 webpack 和 webpack-cli:




npm install webpack webpack-cli

运行 Node.js 服务器:




node server.js

运行 Webpack 打包:




webpack --mode development

这样,你就可以通过 AJAX 向本地的 Node.js 服务器发送请求,并获取响应。使用 Git 来管理你的代码版本。

2024-08-15



layui.use(['form'], function(){
  var form = layui.form;
  
  // 监听提交事件
  form.on('submit(demo1)', function(data){
    // data.field 即为获取的表单数据
    console.log(data.field);
    
    // 使用ajax提交表单数据
    $.ajax({
      url: '/your/server/url',
      type: 'post',
      data: data.field,
      success: function(res){
        // 处理服务器返回的结果
        console.log('提交成功', res);
      },
      error: function(){
        // 处理错误情况
        console.log('提交失败');
      }
    });
    
    return false; // 阻止表单默认提交事件
  });
});

这段代码展示了如何使用Layui框架的form模块来监听表单的提交事件,并通过Ajax异步提交表单数据。在提交函数中,data.field 会包含所有表单元素的数据,这些数据可以直接用于Ajax请求。通过返回false,可以阻止表单的默认提交行为。这是一个常见的模式,用于处理表单数据和异步提交。

2024-08-14

前端框架的选择和实现通常会涉及到以下几个关键点:

  1. 使用Vue.js进行数据绑定和组件化开发。
  2. 使用Ajax进行前后端的异步通信。
  3. 创建一个工程目录,并配置相关的构建工具(如Webpack)。

以下是一个简单的示例,展示如何使用Vue和Ajax发送请求到后端:




<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue + Ajax 示例</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <input v-model="message" placeholder="输入一些文本">
        <button @click="sendMessage">发送消息</button>
    </div>
 
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                message: ''
            },
            methods: {
                sendMessage: function() {
                    var xhr = new XMLHttpRequest();
                    xhr.open('POST', '/receiveMessage', true);
                    xhr.setRequestHeader('Content-Type', 'application/json');
                    xhr.onreadystatechange = function() {
                        if (xhr.readyState === 4 && xhr.status === 200) {
                            console.log(xhr.responseText);
                        }
                    };
                    xhr.send(JSON.stringify({ message: this.message }));
                }
            }
        });
    </script>
</body>
</html>

后端(Java)处理请求的代码示例:




// JavaServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import com.google.gson.Gson;
 
public class JavaServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String message = request.getReader().readLine();
        Gson gson = new Gson();
        MessageModel model = gson.fromJson(message, MessageModel.class);
 
        // 处理消息...
 
        response.setContentType("application/json");
        PrintWriter out = response.getWriter();
        out.print("{ \"status\": \"success\" }");
        out.flush();
    }
 
    public static class MessageModel {
        public String message;
    }
}

在这个例子中,前端使用Vue.js来绑定用户输入的数据,并在用户点击按钮时发送一个Ajax请求到后端。后端使用Java的HttpServlet处理请求,并通过Ajax响应。这个简单的框架展示了前后端交互的一种方式,但实际项目中可能还需要考虑更多的细节,例如路由管理、状态管理、构建和部署等。

2024-08-13

以下是使用React 18, Vite, TypeScript 和 Ant Design 搭建前端框架的步骤和示例代码:

  1. 初始化项目:



npm create vite@latest
  1. 选择项目模板,选择 JavaScriptTypeScript,并输入项目名称。
  2. 安装 Ant Design:



npm install antd
  1. vite.config.tsvite.config.js 中配置 Ant Design 组件的自动导入:



import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'path';
 
// 自动导入 antd 组件的 babel 插件
const esModule = true;
const libraryName = 'antd';
 
// ...
 
export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
      '@components': path.resolve(__dirname, './src/components'),
    },
  },
  // ...
});
  1. 在入口文件 index.tsx 中引入 Ant Design 样式并使用组件:



import React from 'react';
import ReactDOM from 'react-dom/client';
import { Button } from 'antd';
import 'antd/dist/antd.css';
 
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <Button type="primary">Hello Ant Design</Button>
  </React.StrictMode>
);
  1. 运行开发服务器:



npm run dev

以上代码提供了一个使用 React 18, Vite, TypeScript 和 Ant Design 的基本框架。根据实际需求,您可能需要添加路由、状态管理、API 请求库等其他依赖项和配置。

2024-08-12

在这个系列中,我们将使用AJAX、Node.js、Webpack和Git来构建一个简单的前端应用程序。以下是第四部分的内容,其中我们将介绍如何使用AJAX发送GET和POST请求。

1. 使用AJAX发送GET请求




// 创建一个新的XMLHttpRequest对象
const xhr = new XMLHttpRequest();
 
// 配置请求类型、URL 以及是否异步处理
xhr.open('GET', 'https://api.example.com/data', true);
 
// 设置请求完成的回调函数
xhr.onreadystatechange = function () {
  // 请求完成并且响应状态码为 200
  if (xhr.readyState === XMLHttpRequest.DONE) {
    if (xhr.status === 200) {
      // 处理请求成功的响应数据
      console.log(xhr.responseText);
    } else {
      // 处理请求失败
      console.error('AJAX Request failed');
    }
  }
};
 
// 发送请求
xhr.send();

2. 使用AJAX发送POST请求




// 创建一个新的XMLHttpRequest对象
const xhr = new XMLHttpRequest();
 
// 配置请求类型、URL 以及是否异步处理
xhr.open('POST', 'https://api.example.com/data', true);
 
// 设置请求头,如内容类型
xhr.setRequestHeader('Content-Type', 'application/json');
 
// 设置请求完成的回调函数
xhr.onreadystatechange = function () {
  // 请求完成并且响应状态码为 200
  if (xhr.readyState === XMLHttpRequest.DONE) {
    if (xhr.status === 200) {
      // 处理请求成功的响应数据
      console.log(xhr.responseText);
    } else {
      // 处理请求失败
      console.error('AJAX Request failed');
    }
  }
};
 
// 发送包含数据的请求
xhr.send(JSON.stringify({ key: 'value' }));

以上代码演示了如何使用原生JavaScript的XMLHttpRequest对象来发送GET和POST请求。这是现代前端开发中一个非常基础且重要的概念,因为它允许我们从浏览器中异步获取数据。虽然现代开发中我们通常会使用更现代的API,如fetch,但是XMLHttpRequest对象在所有现代浏览器中都得到了支持,而且是理解AJAX基础的关键。

2024-08-11

由于篇幅限制,以下仅展示如何使用PHP和MySQL创建一个简单的校园维修报修系统的核心功能。




// 数据库连接配置
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', 'password');
define('DB_NAME', 'repair_system');
 
// 连接数据库
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
 
// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
 
// 创建报修单函数
function createRepairOrder($conn, $studentId, $equipmentId, $description) {
    $stmt = $conn->prepare("INSERT INTO repair_orders (student_id, equipment_id, description, status) VALUES (?, ?, ?, '待处理')");
    $stmt->bind_param("iii", $studentId, $equipmentId, $description);
    
    if ($stmt->execute()) {
        return $stmt->insert_id; // 返回插入的报修单ID
    } else {
        return false;
    }
}
 
// 获取报修单函数
function getRepairOrder($conn, $orderId) {
    $stmt = $conn->prepare("SELECT * FROM repair_orders WHERE id = ?");
    $stmt->bind_param("i", $orderId);
    $stmt->execute();
    
    $result = $stmt->get_result();
    return $result->fetch_assoc();
}
 
// 更新报修单状态函数
function updateRepairOrderStatus($conn, $orderId, $status) {
    $stmt = $conn->prepare("UPDATE repair_orders SET status = ? WHERE id = ?");
    $stmt->bind_param("si", $status, $orderId);
    
    return $stmt->execute();
}
 
// 示例使用
$studentId = 123;
$equipmentId = 456;
$description = "电脑故障,屏幕发热";
$orderId = createRepairOrder($conn, $studentId, $equipmentId, $description);
 
if ($orderId) {
    echo "报修单创建成功,报修单ID:$orderId";
    // 更新报修单状态为“处理中”
    if (updateRepairOrderStatus($conn, $orderId, '处理中')) {
        echo "报修单状态更新成功";
    } else {
        echo "报修单状态更新失败";
    }
} else {
    echo "报修单创建失败";
}
 
// 关闭数据库连接
$conn->close();

在这个简单的例子中,我们创建了一个用于连接MySQL数据库的小型函数库。这些函数包括创建报修单、获取报修单信息以及更新报修单状态。这样的设计可以帮助开发者理解如何安全地与数据库交互,同时也体现了面向对象编程的概念,这对于开发复杂系统是非常有用的。

2024-08-08



// 引入Vue库
import Vue from 'vue';
 
// 创建Vue实例
new Vue({
  // 挂载点:指定Vue实例为哪个DOM元素提供挂载点
  el: '#app',
 
  // 数据对象,用于Vue实例的数据存储
  data: {
    message: 'Hello Vue!'
  },
 
  // 方法对象,定义可复用的函数,用于事件处理等
  methods: {
    reverseMessage() {
      this.message = this.message.split('').reverse().join('');
    }
  }
});

这段代码展示了如何创建一个基本的Vue.js实例,并通过el属性指定了挂载点,data属性定义了数据对象,methods属性定义了一个方法用于反转字符串。这是学习Vue.js时的一个基本例子,它帮助初学者理解Vue实例的结构和基本用法。