当前位置: 网站首页>小程序开发>小程序制作

府谷网站制作要多少钱【域名企业邮箱服务器注册申请办理】府谷网络优化公司哪家好、府谷软件开发外包价格、府谷高端企业网站页面制作设计专业公司、府谷微信公众号小程序购物支付搭建制作公司

发表日期: 2021-06-02 11:05:02 浏览次数:96

府谷网站制作要多少钱【域名企业邮箱服务器注册申请办理】府谷网络优化公司哪家好、府谷软件开发外包价格、府谷高端企业网站页面制作设计专业公司、府谷微信公众号小程序购物支付搭建制作公司


网站建设.jpg


府谷县位于陕西省最北端,地处秦、晋、蒙接壤地带,与山西省河曲县、保德县隔河相望,北与内蒙古自治区准格尔旗、伊金霍洛旗接壤,西南与神木市毗邻,素有“鸡鸣闻三省”之称。县域经济综合竞争力居全国百强、西部十强,国家卫生县城、全国文明县城、省级民营经济转型升级试验区和中国产业百强县、全国金融生态先进县、中国最具投资潜力特色先进县、省级园林县城、省级环保模范县城、全国科技进步先进县、中国低碳生态十强县、全国生态文明先进县、陕西省卫生县城,陕西省平安县城,陕西省十强县位居三甲等等。府谷自然资源富集,是国家级陕北能源化工基地的重要组成部分,国家“西煤东运”、“西电东送”、“西气东输”的重要枢纽,是北宋名将折赛花(佘太君),折可存故乡,特产有海红果。

2018年10月8日,府谷县入选“综合实力百强县”。2018年11月,荣登“2018中国幸福百县榜”。 [1-2]  2019年3月,被列为第一批革命文物保护利用片区分县名单。 [3]  2019年10月,入选2019中国西部百强县市名单。 [4]  2019年11月,入选第二批节水型社会建设达标县(区)。 [5]  2020年7月29日,入选2019年重新确认国家卫生乡镇(县城)名单。 [6] 



Ajax( Asynchronous Javascript And XML)

Ajax 优势:

1.不需要插件支持(一般浏览器且默认开启 JavaScript 即可);
2.用户体验极佳(不刷新页面即可获取可更新的数据);
3.提升 Web 程序的性能(在传递数据方面做到按需放松,不必整体提交);
4.减轻服务器和带宽的负担(将服务器的一些操作转移到客户端);

Ajax 的不足:

1.不同版本的浏览器度 XMLHttpRequest 对象支持度不足(比如 IE5 之前);
2.前进、后退的功能被破坏(因为 Ajax 永远在当前页,不会记录前后页面);
3.搜索引擎的支持度不够(因为搜索引擎爬虫还不能理解 JS 引起变化数据的内容);
json是一种数据格式,由对象,数组互相嵌套组成,属性名必须加双引号,数据传输格式

ajax.readyState:

0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

HTTP 状态码 ajax.status

101——客户要求服务器根据请求转换HTTP协议版本
200——交易成功
304——客户端已经执行了GET,但文件未变化
306——前一版本HTTP中使用的代码,现行版本中不再使用
400——错误请求,如语法错误
404——没有发现文件、查询或UR
405——用户在Request-Line字段定义的方法不允许
500——服务器产生内部错误
505——服务器不支持或拒绝支请求头中指定的HTTP版本

var ajax = new XMLHttpRequest();ajax.open("POST","url",true);ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");ajax.send("name=zhangsan&age=18");ajax.onreadystatechange = function(){    if(ajax.readyState == 4 && ajax.status == 200){        var json = JSON.parse(ajax.responseText);        fn(json);    }}

同源策略:

浏览器安全策略,保障非同源资源之间数据访问的安全性。
默认不允许非同源的资源直接访问。

URL:

协议://域名:端口/路径名称?查询字符串#位置标识符
同源:协议、域名、端口完全一致,只要三个中有任何一个不一致,则是非同源
非同源资源间需要进行访问,则需要实现跨域。

解决资源跨域访问:

1.CORS
cross-origin resource sharing
服务器端:设置响应头信息:Access-Control-Allow-Origin:*
前端: ajax可解决GET/POST跨域需求
GET方式:

/* ajax请求get * @param url     string   请求的路径 * @param query   object   请求的参数query * @param succCb  function 请求成功之后的回调 * @param failCb  function 请求失败的回调 * @param isJson  boolean  true: 解析json  false:文本请求  默认值true */ajaxGet : function (url, query, succCb, failCb, isJson) { // 拼接url加query    if(query) {        url += "?";        for(var key in query){            url += key+"="+query[key]+"&";        }        // 把最后一个&删掉        url = url.slice(0, -1); }    // 1、创建对象 var ajax = new XMLHttpRequest();    // 2、建立连接 ajax.open("GET", url, true);    // 3、发送请求 ajax.send(null);    // 4、监听状态的改变    ajax.onreadystatechange = function(){        if(ajax.readyState === 4){            if(ajax.status === 200){                // 用户传了回调才执行                // isJson默认值为true,要解析json                if(isJson === undefined){                    isJson = true;                }                var res = isJson ? JSON.parse(ajax.responseText) : ajax.responseText;                succCb && succCb(res);            }else{                // 请求失败                failCb && failCb();            }        }    }}

POST方式:

/* ajax请求post  * @param url     string   请求的路径  * @param query   object   请求的参数query  * @param succCb  function 请求成功之后的回调  * @param failCb  function 请求失败的回调  * @param isJson  boolean  true: 解析json  false:文本请求  默认值true  */ ajaxPost: function(url, query, succCb, failCb, isJson){    var ajax = new XMLHttpRequest();    ajax.open("POST", url, true);   // 设置请求头数据传输格式    ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");   // 把query拼接成urlencoded    var str = "";   for(var key in query){        str += key + "=" + query[key] + "&";    }    str = str.slice(0,-1);    ajax.send(str);    ajax.onreadystatechange = function () {        if(ajax.readyState === 4) {            if(ajax.status === 200){                // 判断isJson是否传进来了                isJson = isJson === undefined ? true : isJson;                succCb && succCb(isJson ? JSON.parse(ajax.responseText) : ajax.responseText);            }        }    }}

jsonp

<script src=""></script>利用<script>在引入外部JS时不受同源策略限制的特性,来实现跨域。

JSONP只能处理GET请求方式的跨域

后端:
由服务器端构建一个字符串:字符串中的内容是能够在 JS 中执行的函数调用的结构
前端:
1.创建 <script> 元素
2.设置 src 属性,传递 callback 参数指明全局回调函数的名称
3.添加到 body 中
4.创建全局函数,用于处理响应数据
5.删除 <script> 元素

/* jsonp ajax请求 * @param  url  string 请求路径 * @param  cb    string  全局函数名 * @param  query  object  请求参数 */ajaxJsonp : function(url, cb, query) {    // 1、 创建script标签    var script  = document.createElement("script");    // 2、拼接url和回调函数以及请求参数    url += "?cb="+cb;    if(query){        for(var key in query){            url += "&"+key+"="+query[key];        }    }    // 3、设置script的src属性    script.src = url;    // 4、 把script添加到body中    document.body.appendChild(script);    document.body.removeChild(script);}

promise(ES6)

承诺:—-> 兑现 (resolve) 或 失信(rejected)
用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。它允许你为异步操作的成功和失败分别绑定相应的处理方法。这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的promise对象。

一个 Promise有以下几种状态:

pending: 初始状态,既不是成功,也不是失败状态。
fulfilled: 意味着操作成功完成。
rejected: 意味着操作失败。

创建Promise对象:

var promise = new Promise( executor );
executor: 是一个函数,该函数在创建Promise对象的同时被调用执行。

executor:

语法:function(resolve, reject) {…}
—resolve:将Promise对象状态修改为 fulfilled,可以传递参数到then方法的第一个函数中
—reject:将Promise对象状态修改为 rejected,可以传递参数到 then 方法的第二个函数中

API:

Promise.prototype.then(onfulfilled, onrejected) 方法:
— onfulfilled 绑定的是成功时执行的函数
— onrejected 绑定的是失败时执行的函数

Promise.all(iterable)

— iterable : 可迭代对象(数组)
— 返回Promise对象
— 当数组中所有Promise对象都完成时,回调执行成功的函数,当只要有一个执行失败时,就回调执行失败的函数。

ajaxGetPromise : function(url, query, isJson){    return new Promise(function(resolve, reject) {     // 拼接url加query        if(query) {            url += "?";            for(var key in query){                url += key+"="+query[key]+"&";            }            // 把最后一个&删掉            url = url.slice(0, -1);        }        // 1、创建对象        var ajax = new XMLHttpRequest();        // 2、建立连接        ajax.open("GET", url, true);        // 3、发送请求        ajax.send(null);        // 4、监听状态的改变        ajax.onreadystatechange = function(){            if(ajax.readyState === 4){                if(ajax.status === 200){                    // 用户传了回调才执行                    // isJson默认值为true,要解析json                    if(isJson === undefined){                        isJson = true;                    }                    var res = isJson ? JSON.parse(ajax.responseText) : ajax.responseText;                    resolve(res);                }else{                    // 请求失败                    reject();                }            }        }    })}



府谷网站制作要多少钱域名企业邮箱服务器注册申请办理府谷网络优化公司哪家好、府谷软件开发外包价格、府谷高端企业网站页面制作设计专业公司、府谷微信公众号小程序购物支付搭建制作公司

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878