前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JSON基础、原生的ajax及JQuery.ajax

JSON基础、原生的ajax及JQuery.ajax

原创
作者头像
申小兮
发布于 2023-04-19 13:21:33
发布于 2023-04-19 13:21:33
92920
代码可运行
举报
文章被收录于专栏:前端开发基础前端开发基础
运行总次数:0
代码可运行

一、JSON

1、什么是JSON

一种轻量级的数据交换格式,主要用于跟服务器进行交换数据

(1)从服务器上读取JSON数据,将json数据转化成js对象,然后在网页中使用数据

(2)json数据结构:对象+数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body>
<script>
    var json = {
        data:{
            students:[
                {
                    name:'tom',
                    age:18,
                    skill:['sing','run']
                },
                {
                    name:'bob',
                    age:19,
                    skill:['study','swim']
                }
            ]
        }
    }
    //获取数组内容,可以用for遍历或each
    console.log($.each(json.data.students,function(index,item){
        console.log(index,item);
        console.log(item.name);
    }));
</script>
</body>

2、JSON.stringify()

json对象转成字符串

3、JSON.parse()

字符串【注意需要是标准的json字符串格式转成json】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    var json = {
        data:{
            students:[
                {
                    name:'tom',
                    age:18,
                    skill:['sing','run']
                },
                {
                    name:'bob',
                    age:19,
                    skill:['study','swim']
                }
            ]
        }
    }
    var str = JSON.stringify(json)
    console.log(str);
    var obj = JSON.parse(str)
    console.log(obj);
</script>

 二、AJAX(用户登录 - 天行数据TianAPI

1、open(method,url,async)

method:请求类型(GET、POST)

url:接口地址

async:true(异步)、false(同步)

【接口基本上都是异步(可以同时进行)的】

2、请求类型:get和post

(1)相同:都可以跟服务器进行数据交互

(2)不同:

①传送方式:get是通过地址栏进行传输,post是通过报文传输

②传送长度:get的长度会被限制,post不限长度

③安全性:get安全性低,参数会暴露在地址栏,一般用于获取,post安全性高,一般可以传输数据

3、send(string)

发送请求【post情况下string写参数的地方】

4、参数传递

(1)get:在地址栏上,url后面拼接?key=value&key=value

(2)post:send(key=value)

5、响应

responseText属性:获取以字符串形式返回的数据

(1)Jscript的get写法:(天行的舔狗日记为例)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    //创建
    var xhr = new XMLHttpRequest()
    xhr.open(
        'GET',
        'http://api.tianapi.com/tiangou/index?key=a3828b7efb833ce8c26d05f10ed40e04',
        true
    )
    //发送
    xhr.send()
    //响应
    xhr.onload = function(){
        console.log(xhr.responseText);
        var data = JSON.parse(xhr.responseText)
        console.log(data);
    }
</script>

(2)Jscript的post写法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    var xhr = new XMLHttpRequest();
      xhr.open(
        "POST",
        "http://120.78.172.212:7789/students/sys/loginWeb",
        true
      );
      // 配置Content-Type: application/x-www-form-urlencoded
      xhr.setRequestHeader(
        "Content-Type",
        "application/x-www-form-urlencoded",
        "charset=UTF-8"
      );
      // 发送
      xhr.send("username=lyx&password=888888");
      // 响应
      xhr.onload = function () {
        console.log(xhr.responseText);
        var data = JSON.parse(xhr.responseText);
        console.log(data);
      };
</script>

 (3)JQ的get写法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    $.ajax({
        async:true,
        type:'GET',
        url:'http://api.tianapi.com/tianqi/index?key=408065bffbb866c9782f501d3ff046bf&city=福州市',
        success:function(res){
            console.log(res);
        }
    })
</script>

 (4)JQ的post写法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    $.ajax({
        async:true,
        type:'POST',
        data:{
            key:'a3828b7efb833ce8c26d05f10ed40e04'
        },
        url:'http://api.tianapi.com/tiangou/index',
        success:function(res){
            console.log(res);
        }
    })
</script>

三、回顾JS、JQ,代码例子

1、简单的添加、删除、编辑表格(具体效果,小伙伴可以复制代码自己操作一下哦🧐)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jquery-3.6.0.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
 
        input {
            width: 400px;
            height: 30px;
            padding-left: 10px;
            outline: none;
        }
 
        .all {
            margin-top: 10px;
            text-align: center;
            margin-bottom: 30px;
        }
 
        table {
            margin: auto;
        }
 
        th {
            width: 300px;
            height: 20px;
            border: 2px solid rgba(134, 131, 131, 0.216);
            box-sizing: border-box;
            background-color: skyblue;
            color: #fff;
        }
 
        .btn1 {
            padding: 5px 10px;
            box-sizing: border-box;
            background-color: skyblue;
            color: #fff;
            border: 1px solid skyblue;
            border-radius: 3px;
        }
 
        td {
            text-align: center;
            height: 30px;
            border: 2px solid rgba(134, 131, 131, 0.216);
            box-sizing: border-box;
        }
 
        .btn2 {
            padding: 2px 4px;
            box-sizing: border-box;
        }
 
        .btn3 {
            padding: 2px 4px;
            box-sizing: border-box;
        }
    </style>
</head>
 
<body>
    <!-- <form action=""> -->
        <div class="all">
        <span style="font-weight: bold;">姓名:</span>
        <input type="text" id="user" placeholder="请输入姓名">
        <span style="font-weight: bold;">年龄:</span>
        <input type="text" id="age" placeholder="请输入年龄">
        <button class="btn1">添加</button>
        </div>
    <!-- </form> -->
    <div class="main">
        <table border="1" cellspacing="0">
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>操作</th>
            </tr>
            <!-- <tr>
                <td>1</td>
                <td>张三</td>
                <td>18</td>
                <td>
                    <button class="btn2">编辑</button>
                    <button class="btn3">删除</button>
                </td>
            </tr> -->
        </table>
    </div>
    <script>
        var table = document.querySelector('table')
 
        var arr = [
            {
                name: '张三',
                age: 17
            },
            {
                name: '李四',
                age: 20
            },
            {
                name: '王五',
                age: 23
            }
        ]
 
        //添加
        var add = document.querySelector('.btn1')
        add.onclick = function(){
            var userName = document.querySelector('#user')
            var userAge = document.querySelector('#age')
            //去掉首尾空格trim()
            if(userName.value.trim().length != 0 & isNaN(parseInt(userAge.value.trim()))==false){
                var newObj = 
                {
                    name : userName.value,
                    age : userAge.value
                }
            arr.push(newObj)
            userName.value = ''
            userAge.value = ''
            console.log(arr);
            create()
            }else{
                alert('添加失败,请输入正确的名字和年龄')
            }
            
        }
 
        //创建
        function create() {
            //清除
            table.innerHTML = ''
            //创建表头
            var trTh = document.createElement('tr')
            trTh.innerHTML = `
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>操作</th>
                `
            table.appendChild(trTh)
 
            //创建节点
            for (var i = 0; i < arr.length; i++) {
                // console.log(arr[i]);
                var newTr = document.createElement('tr');
                console.log(newTr);
                newTr.innerHTML = `
                <td>${i+1}</td>
                <td>${arr[i].name}</td>
                <td>${arr[i].age}</td>
                <td>
                    <button class="btn2">编辑</button>
                    <button class="btn3">删除</button>
                </td>
            `
            table.appendChild(newTr);
 
            //编辑
            var editArr = document.querySelectorAll('.btn2')
            for(var j = 0;j<editArr.length;j++){
                (function(j){
                    editArr[j].onclick = function(){
                        // console.log(j);
                        //修改
                        var editName = prompt('请输入姓名')
                        if(editName.trim().length != 0){
                            // console.log(editName.length);
                            arr[j].name = editName              
                        }else{
                            alert('请输入正确的姓名')
                        }
 
                        var editAge = parseInt(prompt('请输入年龄'))
                        if(isNaN(editAge)==false){
                            arr[j].age = editAge             
                        }else{
                            alert('请输入正确的年龄')
                        }
 
                        // console.log(arr);
                        create()
                    }
                })(j)
            }
 
            //删除
            var delArr = document.querySelectorAll('.btn3')
            for(z = 0;z<delArr.length;z++){
                (function(z){
                    delArr[z].onclick = function(){
                        // console.log(z);
                        arr.splice(z,1)
                        // console.log(arr);
                        create()
                    }
                })(z)
            }
        }
    }
        create()
 
    </script>
</body>
</html>

2、实现简单界面的转换(具体效果,小伙伴可以复制代码自己操作一下哦🧐)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jquery-3.6.0.js"></script>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            height: 50px;
            background-color: #ccc;
            text-align: center;
            line-height: 50px;
        }
        ul{
            display: flex;
            justify-content: center;
        }
        li{
            width: 200px;
            height: 50px;
            list-style: none;
            color: #fff;
        }
        .active{
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="box">
        <ul>
            <li>商品介绍</li>
            <li>规格与包装</li>
            <li>售后保障</li>
            <li>商品评价</li>
            <li>本店好评商品</li>
        </ul>
    </div>
    <div class="main">
        <div>商品介绍</div>
        <div>规格与包装</div>
        <div>售后保障</div>
        <div>商品评价</div>
        <div>本店好评商品</div>
    </div>
    <script>
        $('li').eq(0).addClass('active')
        $('.main div').eq(0).show().siblings().hide()
 
        $('li').click(function(){
            $(this).addClass('active').siblings().removeClass('active')
            $('.main div').eq($(this).index()).show().siblings().hide()
        })
    </script>
</body>
</html>

 3、实现无限左拉或右拉(具体效果,小伙伴可以复制代码自己操作一下哦🧐)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jquery-3.6.0.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .all {
            margin: auto;
            width: 687px;
            height: 186px;
            border: 1px solid #d3d3d3;
            position: relative;
            top: 20px;
            background-color: #f5f5f5;
        }
        .banner{
            width: 645px;
            height: 186px;
            position: absolute;
            left: 21px;
            overflow-x: hidden;
            /* background-color: #f5f5f5; */
        }
        .move {
            width: 2580px;
            height: 186px;
            position: absolute;
            left: 0;
            /* background-color: red; */
            /* transition: 500ms; */
        }
        .left {
            position: absolute;
            top: 71px;
            width: 17px;
            height: 17px;
            left: 4px;
            cursor: pointer;
            background-position: -260px -75px;
            background-image: url('https://s2.music.126.net/style/web2/img/index/index.png?d8ca63df648aafce67216aba5d1c2588');
        }
        .left:hover{
            background-position: -280px -75px;
        }
        .right {
            position: absolute;
            top: 71px;
            width: 17px;
            cursor: pointer;
            height: 17px;
            right: 4px;
            background-position: -300px -75px;
            background-image: url('https://s2.music.126.net/style/web2/img/index/index.png?d8ca63df648aafce67216aba5d1c2588');
        }
        .right:hover{
            background-position: -320px -75px;
        }
        ul{
            position: absolute;
            /* left: 0; */
            /* background-color: blue; */
            margin-top: 28px;
            width: 645px;
            transition: 500ms;
            display: flex;
            justify-content: space-between;
        }
        li{
            width: 118px;
            height: 150px;
            list-style: none;
            /* margin-left: 11px; */
        }
        .img{
            margin-bottom: 7px;
            display: flex;
        }
        .img img{
            width: 100px;
            height: 100px;
            display: block;
        }
        .background{
            width: 118px;
            height: 100px;
            background-image: url('https://s2.music.126.net/style/web2/img/coverall.png?07ddd97c068cca474df796099520491e');
            background-position: 0 -570px;
            position: absolute;
            /* top: 0; */
            /* left: 0; */
        }
        .text{
            white-space: nowrap;
            width: 90%;
            font-size: 13px;
            overflow: hidden;
            text-overflow: ellipsis;
        }
    </style>
</head>
 
<body>
    <div class="all">
        <div class="left"></div>
        <div class="right"></div>
        <div class="banner">
            <div class="move">
                <ul class="ul1" style="left: -645px;">
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/11QDr3X3ZsJmyBHG_UM0-A==/109951167692927327.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/z-8Yi3OrLXpDFWP4YNQhNQ==/109951167596578985.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/XG8DFES67eGr-l4xcmu2Yg==/109951167695926471.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/c_2UDiBs-3CmnaqYXLJi-A==/109951167677420073.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/H2eXxMzVtAGlKYOgDxD-wQ==/109951167655105219.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                </ul>
                <ul class="ul2" style="left: 0;">
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/CrVEXgg6EK_8xTJNxobsJA==/109951167674088453.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/Z2qKcAdS0eAYrJuJMwa3VA==/109951167611690026.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/mBWkuKXTHjme6pV26GNd4w==/109951167604112526.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/tMylvOQj12OZDW46EeZt5w==/109951167607647677.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/LkwTIyU7Zo853W6LUfYpag==/109951167574776183.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                </ul>
                <ul class="ul3" style="left: 645px;">
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/11QDr3X3ZsJmyBHG_UM0-A==/109951167692927327.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/z-8Yi3OrLXpDFWP4YNQhNQ==/109951167596578985.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/XG8DFES67eGr-l4xcmu2Yg==/109951167695926471.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/c_2UDiBs-3CmnaqYXLJi-A==/109951167677420073.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/H2eXxMzVtAGlKYOgDxD-wQ==/109951167655105219.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                </ul>
                <ul class="ul4" style="left: 1290px;">
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/CrVEXgg6EK_8xTJNxobsJA==/109951167674088453.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/Z2qKcAdS0eAYrJuJMwa3VA==/109951167611690026.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/mBWkuKXTHjme6pV26GNd4w==/109951167604112526.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p4.music.126.net/tMylvOQj12OZDW46EeZt5w==/109951167607647677.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                    <li>
                        <div class="img">
                            <img src="https://p3.music.126.net/LkwTIyU7Zo853W6LUfYpag==/109951167574776183.jpg?param=100y100" alt="">
                            <div class="background"></div>
                        </div>
                        <div class="text" style="color: #000;">Humble Swag GT Mixtape</div>
                        <div class="text" style="color: #666;">马思唯 / A Few Good Kids Records</div>
                    </li>
                </ul>
            </div>
        </div>
    </div>
 
    <script>
        $('.right').click(function(){
            console.log($('.ul2').css('left'));
            if($('.move').css('left')=='0px'){
                $('.move').animate({left:'-645px'},1000,'linear',function(){})
            }else{
                $('.move').animate({left:'-1290px'},1000,'linear',function(){
                    $('.move').css('left','0px')
                })
            }
                
        })
        $('.left').click(function(){
            if($('.move').css('left')=='-645px'){
                $('.move').animate({left:'0px'},1000,'linear',function(){})
            }else{
                $('.move').animate({left:'645px'},1000,'linear',function(){
                    $('.move').css('left','-645px')
                })
            }
                
        })
    </script>
</body>
</html>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
2 条评论
热度
最新
信鸽产品已下线,另一款推送产品——腾讯移动推送 可以提供更优质的服务。「腾讯云移动推送 TPNS」相比「信鸽产品」的主要区别:1、信鸽推送共享30万条/秒,TPNS推送独享高速通道30万条/秒,更快,更稳定2、信鸽仅支持华为、小米、魅族、FCM厂商通道,TPNS支持华为、小米、魅族、OPPO、vivo、FCM、ROG,覆盖更多机型,更高抵达率3、信鸽共享存储空间,TPNS支持App级数据隔离,且符合GDPR规范,可支持出海业务,更安全4、TPNS更有多样化推送能力(如定时、定速、循环推送;按设备、账号、标签推送;用户分群、A/B test等),精准推送,有效提升推送效果,进入腾讯移动推送 TPNS 产品文档查看更多操作指引 https://cloud.tencent.com/document/product/548/37240?from=13828
信鸽产品已下线,另一款推送产品——腾讯移动推送 可以提供更优质的服务。「腾讯云移动推送 TPNS」相比「信鸽产品」的主要区别:1、信鸽推送共享30万条/秒,TPNS推送独享高速通道30万条/秒,更快,更稳定2、信鸽仅支持华为、小米、魅族、FCM厂商通道,TPNS支持华为、小米、魅族、OPPO、vivo、FCM、ROG,覆盖更多机型,更高抵达率3、信鸽共享存储空间,TPNS支持App级数据隔离,且符合GDPR规范,可支持出海业务,更安全4、TPNS更有多样化推送能力(如定时、定速、循环推送;按设备、账号、标签推送;用户分群、A/B test等),精准推送,有效提升推送效果,进入腾讯移动推送 TPNS 产品文档查看更多操作指引 https://cloud.tencent.com/document/product/548/37240?from=13828
回复回复点赞举报
点赞
点赞
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
FastDFS蛋疼的集群和负载均衡(十二)之浅谈负载均衡
Interesting things 学习负载均衡技术。 What did you do today 什么是负载均衡? 一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,
用户2032165
2018/06/05
1.3K0
大型网站–负载均衡架构「建议收藏」
负载均衡 (Load Balancing) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
Java架构师必看
2022/02/03
9750
大型网站–负载均衡架构「建议收藏」
一文带你解析,NAT技术中两种模式的差异!
一句话概括NAT(网络地址转换)产生的背景,简单来说就是产生背景主要是由于IPv4地址资源的有限性以及互联网用户数量的快速增长,导致公有IP地址短缺的问题日益突出。
ICT系统集成阿祥
2024/08/19
6010
负载均衡详解
面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。 从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可以采取冗余
用户1263954
2018/01/30
3.3K0
负载均衡详解
负载均衡原理的解析
作者:源子姗 my.oschina.net/u/3341316/blog/877206 开头先理解一下所谓的“均衡” 不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可能体现在硬件配置、网络带宽的差异,也可能因为某台服务器身兼多职,我们所说的“均衡”,也就是希望所有服务器都不要过载,并且能够最大程序地发挥作用。 一、http重定向 当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过http响应头信息中的Location标记来返回一个新的U
企鹅号小编
2018/02/01
1.4K0
负载均衡原理的解析
Linux 集群总结 + LVS(负载均衡器)原理及配置
相信你已经对集群分类有了大致了解了,那么我们现在详细说说使用LVS来实现负载均衡集群。
小土豆Yuki
2020/06/15
3.1K0
Linux 集群总结 + LVS(负载均衡器)原理及配置
负载均衡基础知识
 互联网早期,业务流量比较小并且业务逻辑比较简单,单台服务器便可以满足基本的需求;但随着互联网的发展,业务流量越来越大并且业务逻辑也越来越复杂,单台机器的性能问题以及单点问题凸显了出来,因此需要多台机器来进行性能的水平扩展以及避免单点故障。但是要如何将不同的用户的流量分发到不同的服务器上面呢?
lyb-geek
2018/07/26
9080
负载均衡基础知识
什么是负载均衡?
负载均衡是高可用性基础架构的关键组件,通常用在多个服务器之间分配工作负载来提高网站、应用程序、数据库和其他服务的性能和可靠性。
司徒永哥
2018/07/23
1.2K0
【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
  当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。
Edison Zhou
2018/08/20
7590
【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
Nginx技术总结之四——集群和负载均衡的算法与实现
负载均衡器可以是专用设备,也可以是在通用服务器上运行的应用程序。 分散请求到拥有相同内容或提供相同服务的服务器。 专用设备一般只有以太网接口,可以说是多层交换机的一种。 负载均衡器一般会被分配虚拟IP地址,所有来自客户端的请求都是针对虚拟IP地址完成的。负载均衡器通过负载均衡算法将来自客户端的请求转发到服务器的实际IP地址上。
剑影啸清寒
2020/07/20
6610
Nginx技术总结之四——集群和负载均衡的算法与实现
LVS负载均衡群集--NAT模式
一、实验拓扑图 二、实验目标:实现地址转换模式(LVS-NAT)的群集 三、实验要求 1、按上图要求部署网络。Client使用宿主机,其他四台为linux服务器,将所有linux服务器的防火墙关闭,N
L宝宝聊IT
2018/06/20
1K0
Web负载均衡
序: 对Web站点扩展一开始不宜过早,除非是基于高可用性和就近部署的考虑。但对于架构师而言,在架构设计之初就要有扩展的计划,关键是要清楚何时进行扩展。这里先介绍的是水平扩展,所谓的扩展是通过扩展规模来提升承载能力的本领。这种本领往体现在增加物理服务器或集群节点,这种本领发挥强,可提升的承载空间越大,但往往也受到其它的约束比如单机的限制、成本等。 12.1 一些思考 对于web站点的水平扩展,负载均衡是一种常见的手段。生活中典型的例子就是项目外包。 12.2 HTTP重定向 Http重
李海彬
2018/03/23
1.1K0
负载均衡集群介绍,LVS介绍,LVS的调度算法,LVS的NAT模式搭建
首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。这是来自维基百科的介绍。负载均衡的目的,就在于平衡计算机的负载,给用户提供优质,可靠,稳定的服务。日常生活中到处都能看到“负载均衡”,一个超市的收营员高峰期只能服务10位顾客,当做活动时有20位顾客需要服务的话可能就会排长队,这样购物体验将会很差(就像客户抱怨系统/网站访问太慢)。最简单的办法就是再招个营业员,重新开通一个出口。负载均衡的核心就是“分摊压力”。
端碗吹水
2020/09/23
7880
负载均衡集群介绍,LVS介绍,LVS的调度算法,LVS的NAT模式搭建
LVS:三种负载均衡方式比较+另三种负载均衡方式
  首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。   为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。一般来说,LVS集群采用三层结构,其体系结构如图所示:
全栈程序员站长
2022/07/05
6660
LVS:三种负载均衡方式比较+另三种负载均衡方式
集群、分布式、负载均衡区别
  计算机集群通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。   比如单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。一般分为几种:
BUG弄潮儿
2020/06/15
1.7K0
集群、分布式、负载均衡区别
LVS实现负载均衡「建议收藏」
LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。
全栈程序员站长
2022/09/15
4.8K0
LVS实现负载均衡「建议收藏」
高性能负载均衡是如何架构的?
什么是负载均衡呢?用户输入的流量通过负载均衡器按照某种负载均衡算法把流量均匀地分散到后端的多个服务器上,接收到请求的服务器可以独立的响应请求,达到负载分担的目的。从应用场景上来说,常见的负载均衡模型有全局负载均衡和集群内负载均衡,从产品形态角度来说,又可以分为硬件负载均衡和软件负载均衡。
Bug开发工程师
2019/07/13
1.8K0
大型网站架构系列:负载均衡详解
硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。本文参考大量文档,部分为直接拷贝。
技术zhai
2019/02/15
7260
负载均衡原理与技术实现
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。负载均衡基本概念有:实服务、实服务组、虚服务、调度算法、持续性等,其常用应用场景主要是服务器负载均衡,链路负载均衡。
菲宇
2019/06/12
3.1K0
负载均衡原理与技术实现
LVS 负载均衡集群(一)| 超详细!一文带你了解 LVS 负载均衡集群
如今,在各种互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求也越来越高,单台服务器也将难以无法承担所有的访问需求。当然了,除了使用性价比高的设备和专用负载分流设备外,还有一些其他选择来帮你解决此问题,就是搭建集群服务器通过整合多台普通的服务器设备并以同一个地址对外提供相同的服务,今天就带领大家学习企业中常用的一种群集技术 —— LVS。
全栈程序员站长
2022/09/15
1.2K0
LVS 负载均衡集群(一)| 超详细!一文带你了解 LVS 负载均衡集群
相关推荐
FastDFS蛋疼的集群和负载均衡(十二)之浅谈负载均衡
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档