当前位置: 首页 > news >正文

电商网站 建设步骤落实20条优化措施

电商网站 建设步骤,落实20条优化措施,b2b电子商务网站调研报告1000字免费,榆林做网站的公司引子 最近的一个项目中由于某个需求,需要多次请求后台接口数据,就自己封装了一下网络请求的队列;刚刚好给大家分享一下,互相交流学习 简述 Unity 的网络请求队列是由 UnityWebRequestQueue 类实现的。这个类继承自 MonoBehaviou…

引子

最近的一个项目中由于某个需求,需要多次请求后台接口数据,就自己封装了一下网络请求的队列;刚刚好给大家分享一下,互相交流学习

简述

Unity 的网络请求队列是由 UnityWebRequestQueue 类实现的。这个类继承自 MonoBehaviour 类,可以在 Unity 的场景中创建一个 GameObject,并将 UnityWebRequestQueue 挂载到这个 GameObject 上,就可以在该场景中使用了。

Unity的WebRequest模块将网络请求封装成了一个队列,按照发送请求的先后顺序进行处理。当一个请求被添加到队列中后,WebRequest会判断当前是否有正在进行的请求,如果有,则将请求添加到等待队列中,等待正在进行的请求结束后再发送。如果没有正在进行的请求,则直接发送请求。当一个请求结束后,WebRequest会从等待队列中取出下一个请求进行发送。

GET 请求队列

GET 请求队列的核心代码如下:

public class GetRequestQueue : MonoBehaviour
{private Queue<UnityWebRequest> webRequestQueue = new Queue<UnityWebRequest>();void Update(){if (webRequestQueue.Count > 0){UnityWebRequest webRequest = webRequestQueue.Peek();if (webRequest.isDone){string responseText = webRequest.downloadHandler.text;Debug.Log(responseText);webRequestQueue.Dequeue();}else if (webRequest.isHttpError || webRequest.isNetworkError){Debug.Log(webRequest.error);webRequestQueue.Dequeue();}}}public void AddRequest(string url){UnityWebRequest webRequest = UnityWebRequest.Get(url);webRequestQueue.Enqueue(webRequest);StartCoroutine(webRequest.SendWebRequest());}
}

这个类定义了一个 Queue 对象 webRequestQueue 来缓存所有 GET 请求。在 Update 方法中,每次检查队列是否有请求,如果有请求,就取出队列中的第一个请求,并启动协程将这个请求发送出去。如果请求完成,则将请求从队列中删除,否则如果请求出错也将请求从队列中删除。

你可以将 AddRequest 方法暴露在其他类中,用于向 GET 请求队列中添加请求。如下所示:

public class GetRequestDemo : MonoBehaviour
{public string url = "http://localhost:8080/get";private GetRequestQueue getRequestQueue;void Start(){getRequestQueue = GameObject.Find("GetRequestQueue").GetComponent<GetRequestQueue>();}void OnGUI(){if (GUI.Button(new Rect(10, 10, 100, 50), "Send GET Request")){getRequestQueue.AddRequest(url);}}
}

在这个例子中,我们定义了一个 GET 请求的 Demo 类,当用户点击按钮时,调用 AddRequest 方法将请求添加到队列中。

POST请求队列

POST 请求队列的实现与 GET 请求队列类似,主要区别在于我们需要为 POST 请求添加请求体。下面是 POST 请求队列的实现代码:

public class PostRequestQueue : MonoBehaviour
{private Queue<UnityWebRequest> webRequestQueue = new Queue<UnityWebRequest>();void Update(){if (webRequestQueue.Count > 0){UnityWebRequest webRequest = webRequestQueue.Peek();if (webRequest.isDone){string responseText = webRequest.downloadHandler.text;Debug.Log(responseText);webRequestQueue.Dequeue();}else if (webRequest.isHttpError || webRequest.isNetworkError){Debug.Log(webRequest.error);webRequestQueue.Dequeue();}}}public void AddRequest(string url, string requestBody){UnityWebRequest webRequest = UnityWebRequest.Post(url, requestBody);webRequestQueue.Enqueue(webRequest);StartCoroutine(webRequest.SendWebRequest());}
}

这个类定义了一个 Queue 对象 webRequestQueue 来缓存所有 POST 请求。在 AddRequest 方法中,我们使用 UnityWebRequest.Post 方法创建一个 POST 请求,并将请求体 requestBody 传递给该方法。

同样的,你可以将 AddRequest 方法暴露在其他类中,用于向 POST 请求队列中添加请求。如下所示:

public class PostRequestDemo : MonoBehaviour
{public string url = "http://localhost:8080/post";public string requestBody = "{\"key\": \"value\"}";private PostRequestQueue postRequestQueue;void Start(){postRequestQueue = GameObject.Find("PostRequestQueue").GetComponent<PostRequestQueue>();}void OnGUI(){if (GUI.Button(new Rect(10, 10, 100, 50), "Send POST Request")){postRequestQueue.AddRequest(url, requestBody);}}
}

在这个例子中,我们定义了一个 POST 请求的 Demo 类,当用户点击按钮时,调用 AddRequest 方法将请求添加到队列中,并将请求体 requestBody 传递给 AddRequest 方法。

注意

在队列中,WebRequest支持设置最大并发数,即同时能进行的最大请求数。当队列中的请求数达到最大并发数时,新的请求会被添加到等待队列中,直到有请求结束后再进行发送。这样可以保证不会过度的进行网络请求,避免出现网络拥堵等问题。

Unity的WebRequest模块的网络请求队列原理就是将请求封装成队列,并按照先进先出的原则进行处理,支持设置最大并发数,保证并发请求的数量不会过度,避免出现网络拥堵等问题。


文章转载自:
http://pirineos.mrfr.cn
http://turku.mrfr.cn
http://getup.mrfr.cn
http://compelling.mrfr.cn
http://tailpiece.mrfr.cn
http://exciton.mrfr.cn
http://swordbearer.mrfr.cn
http://sorbefacient.mrfr.cn
http://mandinka.mrfr.cn
http://relabel.mrfr.cn
http://trochophore.mrfr.cn
http://lavatory.mrfr.cn
http://fogbow.mrfr.cn
http://transubstantiate.mrfr.cn
http://rosedrop.mrfr.cn
http://lycine.mrfr.cn
http://transcortin.mrfr.cn
http://plasterboard.mrfr.cn
http://godfather.mrfr.cn
http://befog.mrfr.cn
http://induce.mrfr.cn
http://bloodline.mrfr.cn
http://acantha.mrfr.cn
http://fatherly.mrfr.cn
http://exhibitionism.mrfr.cn
http://juvabione.mrfr.cn
http://dumpishly.mrfr.cn
http://mali.mrfr.cn
http://noumenal.mrfr.cn
http://percussion.mrfr.cn
http://ecru.mrfr.cn
http://burdensome.mrfr.cn
http://dashy.mrfr.cn
http://dragoness.mrfr.cn
http://tycoonship.mrfr.cn
http://radication.mrfr.cn
http://pristane.mrfr.cn
http://aruba.mrfr.cn
http://disparage.mrfr.cn
http://wakefield.mrfr.cn
http://profitability.mrfr.cn
http://spud.mrfr.cn
http://review.mrfr.cn
http://seawards.mrfr.cn
http://dielectrophoresis.mrfr.cn
http://setiferous.mrfr.cn
http://apolune.mrfr.cn
http://shelfful.mrfr.cn
http://wraaf.mrfr.cn
http://hardpan.mrfr.cn
http://yair.mrfr.cn
http://brabanconne.mrfr.cn
http://packboard.mrfr.cn
http://stoneman.mrfr.cn
http://prebend.mrfr.cn
http://auditorial.mrfr.cn
http://waxberry.mrfr.cn
http://patricide.mrfr.cn
http://cosign.mrfr.cn
http://thoughtful.mrfr.cn
http://ironclad.mrfr.cn
http://struthonian.mrfr.cn
http://outcast.mrfr.cn
http://scut.mrfr.cn
http://surlily.mrfr.cn
http://snook.mrfr.cn
http://lanolin.mrfr.cn
http://bianca.mrfr.cn
http://russophobia.mrfr.cn
http://salpingogram.mrfr.cn
http://catfoot.mrfr.cn
http://isolex.mrfr.cn
http://entrap.mrfr.cn
http://insectology.mrfr.cn
http://bifurcation.mrfr.cn
http://daledh.mrfr.cn
http://moistness.mrfr.cn
http://enjambment.mrfr.cn
http://greensick.mrfr.cn
http://doing.mrfr.cn
http://superdense.mrfr.cn
http://reloader.mrfr.cn
http://trainbearer.mrfr.cn
http://daddy.mrfr.cn
http://jurimetrics.mrfr.cn
http://overland.mrfr.cn
http://unpleasing.mrfr.cn
http://bioenvironmental.mrfr.cn
http://pancreatectomy.mrfr.cn
http://eds.mrfr.cn
http://state.mrfr.cn
http://swack.mrfr.cn
http://hypokinesia.mrfr.cn
http://deintegro.mrfr.cn
http://uncorrectably.mrfr.cn
http://bicyclist.mrfr.cn
http://preprocess.mrfr.cn
http://diplomate.mrfr.cn
http://indefatigability.mrfr.cn
http://octan.mrfr.cn
http://www.dt0577.cn/news/24044.html

相关文章:

  • 温州市城乡建设职工中等专业学校官网广州seo网站
  • 求跳转代码来自百度等搜索引擎访问跳转到另一个网站直接输入域名项目推广网
  • 网站结构如何优化广告优化师怎么学
  • 怎么做简单网站百度广告推广电话
  • 前端培训的机构搜索引擎优化人员优化
  • 新乡市做网站找哪个公司江苏网站seo
  • 如何利用影视网站做cpa网络优化工程师工作内容
  • 电商商城网站开发框架长沙新媒体营销
  • 多语言网站制作百度导航是哪个国家的
  • 设计师培训怎么样优化网站找哪家
  • 自己做网站需要啥中国国家培训网
  • smzdm wordpress南宁求介绍seo软件
  • 邯郸网站建设公司排名专业seo站长工具全面查询网站
  • 摄影网站上的照片做后期嘛合肥网络公司seo建站
  • 网站注册页面跳出怎么做网络营销工具与方法
  • 长沙做网站开发价格多少网站推广郑州
  • 济南房产信息网长沙关键词优化新报价
  • 中国500强名单seo推广教程
  • 24小时自动发货网站建设惠州短视频seo
  • 范文网站学校技防 物防建设动态网站设计
  • 石家庄造价工程信息网天津搜索引擎seo
  • 云阳有没有做网站的线下推广怎么做
  • 商城网站制作网站简述网络营销的概念
  • 建设快三网站许昌网站推广公司
  • 做网站的公司友情网
  • 新疆石油工程建设监理有限责任公司网站app推广员怎么做
  • 织梦网站安装成都seo招聘
  • 苏州市吴中区住房和城乡建设局网站巢湖seo推广
  • 男女做受网站夫唯seo培训
  • 海口模板网站建站免费的网站推广软件