迁移iOS API到前端并实现前后端分离(非Node.js)
面向对象
- 封装
使用ES5的写法。ES6 class不支持私有属性,不少浏览器暂时不支持ES6语法,虽然有babel,还是很容易搞成和IE8以下不兼容,不采用。
function A(){ var privateAttr = 'a' /*使用私有属性的公有方法必须在构造函数中声明。为了减少内存的损耗,可以在构造函数中声明get/set方法或者在prototype中实现带有需要使用的 私有属性作为参数的公共方法,然后再在构造方法中声明对外的公共方法 */ this.sayHello = function(){ this._sayHello(privateAttr) }
}
A.prototype._sayHello = function(privateAttr){ console.log(""+privateAttr)
}
复制代码
静态方法和属性和其他面向对象语言类似,为类对象的属性和方法。
A.staticAttr = 10
A.staticFunction = function(){}
复制代码
另一种方式,减少方法对内存的占用,我越来越倾向于使用这种写法。
(function () {/*map用于存放该类所有对象的私有属性。需要使用数组实现的兼容补丁。WeakMap也可以是Map/Object。小心内存泄露!*/var map = new WeakMap() window.A = function () { var data = { a:10, b:20 } map.set(this,data) } A.prototype.getA = function () { var data = map.get(this) return data.a } A.prototype.setA = function (a) { var data = map.get(this) data.a = a } A.prototype.getB = function () { var data = map.get(this) return data.b } })()
复制代码
- 继承
Function.prototype.extend = function(superClass,publicObject,staticObject) { if(typeof this === 'function'){ if(typeof superClass === 'function' ){ var Super = function(){} Super.prototype = superClass.prototype this.prototype = new Super() this.prototype.constructor = this } //可能删除以下代码 if(typeof publicObject === 'object'){ this.prototype.shallowCopy(publicObject) } if(typeof staticObject === 'object'){ this.shallowCopy(staticObject) } }
}
function Super(){
}
function Sub(){ Super.call(this,....)
}
Sub.extend(Super)
复制代码
- 多态
由于部分公共方法存放在prototype中,部分存在对象中,建议使用变量存放父类方法,然后在子类方法中利用此变量调用父类方法。
function Super(){ this.sayHello = function(){}
}
function Sub(){ Super.call(this,....) var superSayHello = this.sayHello //如果是原型方法则直接调用。 this.sayHello = function(){ superSayHello() ... }
}
Sub.extend(Super)
复制代码
- 重载
常用的js重载是利用js的变量可以保存不同类型的值,在函数内部使用条件判断变量类型以实现重载。这里使用在函数名后面加数字进行假重载,以下是对 构造函数BCSView的重载。
export function BCSView(element, style) { //以下注释代码是想让js和swift的创建对象的语法一致。 //swift创建对象语法 var view = BCSView() //js部分类如Object,Date支持这种创建对象的语法,部分类如Set,Map不支持(Chrome下验证) // 而且多这么一步会导致所有类都需要如此写,不但麻烦而且还要包装系统自带不支持的类,故不为了swift而swift。 // if (!this || this.constructor !== BCSView){ // return new BCSView(element, style) // } Function.requireArgumentNumber(1) this.layer = element if(typeof style === 'object'){ style.position = 'absolute' }else{ style = {position:'absolute'} } this.setStyle(style) this.subViews = generateSubViews(this.layer) /* 方便调试 */ this.layer.setAttribute('view',this.getClass())
} function BCSView1(style,elementType) { elementType = elementType || 'div' var element = document.createElement(elementType) if(this.constructor === BCSView1){ /*通过new BCSView1构建*/ return new BCSView(element,style) }else{ BCSView.call(this,element,style) }
}
复制代码
html5兼容补丁(polyfill)
从HTML5-Cross-browser-Polyfills 中挑选兼容性较好的补丁,并按照IE的版本分别打包。使用时根据需要调用browser.applyPatches(PatchEnum.Audio,....),所有可用的补丁名称存放 在PatchEnum中,其中有不少补丁可以兼容IE6。我没有全部测试过这些补丁,而且还有部分是个人代码...以下是验证过兼容到IE6的补丁清单:
- JSON(默认启用)
- ES5(默认启用,不兼容部分语法)
- Dom2(默认启用)
- LocalStorage/SessionStorage
- Promise
- fetch(IE67不支持跨域) 和fetchJSONP
- canvas
- Video/Audio
- Css3 BackgroundsBorders(PIE_IE678_uncompressed补丁)
- Console(默认启用,防止IE9及以下非调试时报错)
- Transform
- Placeholder
- CSS3Filter
- MathJax
前后端分离
目前,主流将B/S和C/S看成两种独立的架构。本人更愿意将B/S看成是一种特殊C/S架构,http协议建立在tcp协议上就是佐证!这也是这个项 目叫做BC/S的原因。BC/S即Browser client/Server架构的简称,即将浏览器看作和iOS/Android类似的终端(事实也是如此)。它们的开发思路很类似, 以iOS和前端作为对比:html css对应iOS的StoryBoard(StoryBoard是xml文件)和配置文件,javascript对应OC/Swift。甚至于javascript有 document.getElementById API,而Android有findViewById....那么如何在浏览器实现前后端分离呢?单页面应用完全可以做到前后端分离,有问题的 是多页面应用。能否在单页面应用的基础上,将json数据传递给新打开的页面呢?答案是肯定的。可以用来在页面间传递数据的有localStorage, sessionStorage,window.name。其中localStorage是全局的不合适;sessionStorage在Chrome打开新页面的瞬间有bug(不知道算不算),而且IE6 的sessionStorage使用window.name进行兼容,故只能使用window.name。浏览器打开新页面的API为window.open(url,windowname....)。过程如下:
- 旧页面获取到JSON数据后调用BCSViewController.prototype.openWindow方法,将json数据传递给新页面
(这里的新页面可以是在本窗口打开的新页面也可以是在新窗口中打开的新页面)的window.name - 新页面打开后调用loadPageInfo方法,从window.name获取JSON数据。
有没有可能发生会话上的问题?能否通过浏览器cookie相关API解决?
实现代码如下:
- 旧页面获取到JSON数据后调用
BCSViewController.prototype.openWindow = function (pageInfo,windowName,newWindow) { Function.requireArgumentNumber(arguments,2) Function.requireArgumentType(pageInfo,'object') if(pageInfo instanceof Object){ var url,name,object,WindowNameEnum = window.WindowNameEnum if (pageInfo.url) { url = pageInfo.url }else if(pageInfo.pathname){ url = location.href.replace(location.pathname,'') + pageInfo.pathname }else{ throw new TypeError('invalid url & pathname') } windowName = windowName || WindowNameEnum.SELF newWindow= newWindow ||window.open('',windowName) if(newWindow){ if (newWindow.name) { object = JSON.parse(newWindow.name) }else { object = {} } object[BCSViewController.key] = pageInfo /*bluebird内部机制未知,但感觉会在调用外部函数JSON.stringify时切换以让出CPU。 此时打开另一个页面会导致页面loadPageInfo执行,目前放在这个位置似乎可以顺利执行*/ name = JSON.stringify(object) newWindow.name = name newWindow.location.assign(url) }else{ throw new OpenWindowException('Failed to open window.Please check if url is correct ' +// jshint ignore:line 'or popup new window function is blocked!') } }else{ throw new TypeError('invalid pageinfo') // jshint ignore:line } }
复制代码
- 新页面中调用
BCSViewController.prototype.loadPageInfo = function (dataURL,errorCallback,method,data) { var pageinfo,key = BCSViewController.key if(window.name){ var object = JSON.parse(window.name) pageinfo = object[key] if(pageinfo){ try{ delete object[key] }catch(e){ object[key] = undefined } window.name = JSON.stringify(object) } } if(!pageinfo && dataURL ){ method = method || window.HttpMethodEnum.GET var request = new XMLHttpRequest() if (request !== null) { /* window.location.search 用户可能输入参数 */ request.open(method, '' + dataURL + window.location.search, false) request.onreadystatechange = function () { if (request.readyState === 4) { switch (request.status) { case 302: case 200: if (request.responseText) { pageinfo = JSON.parse(request.responseText) } break default: errorCallback && errorCallback(request.status, request.statusText) break } } } request.send(data) }else{ throw new TypeError('XMLHttpRequest is not supported') } } if(pageinfo && pageinfo.title){ document.title = pageinfo.title } return pageinfo }
复制代码
优点:
- 在浏览器端实现前后端分离
- 将页面动态数据的渲染放在浏览器端,降低服务器的运算负担。(没有实际测试过,只是觉得生成JSON数据的开销总归比渲染页面的开销小)
缺点:
每个页面多一次请求。
示例:src/main/webapp/WEB-INF/html/bcs1.html
以iOS开发思想编写前端应用
- MVVM
这是iOS很经典的MVC和MVVM设计模式图,可以应用到Android,理论上也可以应用到html应用。可能写惯了React或者Vue的朋友会 鄙视它。本人学了点React和Vue的皮毛,依然还是觉得iOS的MVVM比较好(上文的前后端分离的方式可能会让人觉得Vue不错),个人看法,拒绝在这个问题 上打口水战,就是这么专制。哈哈。尤其想吐槽的是React Redux和VueX。这两个玩意儿无非是用来存放model数据,却因为html应用一直在使用函数编程 思维,将一个本来使用面向对象的单例设计模式即可解决的问题变成一个需要使用3-4步的框架才能搞定的问题。单例设计模式的意思是创建一个整个应用全 局都能访问的对象,这个对象是其类的唯一一个实例对象。由于可以通过对象.constructor得到构造函数,目前个人认为较好的单例模式如下:
a.java 懒汉饿汉随便挑一个吧,js多线程应该没什么人用。
(function () { var singleton = new Model() function Model() { if(singleton){ throw new TypeError(this.getClass() + ' could be instantiated only once!') } ... } Model.getInstance = function () { return singleton } window.Model = Model //export
})()
复制代码
b.swift
(function () { var singleton = new Model() function Model() { if(singleton){ throw new TypeError(this.getClass() + ' could be instantiated only once!') } ... } Model['default'] = singleton window.Model = Model //export
})()
复制代码
c. Symbol方式
- 观察者模式
iOS有两种观察者模式的实现,一个是KVO,另一个是NotificationCenter.default。和iOS类似的js版KVO使用defineProperty实现,其使用范围和 Vue一样,区别是KVO是单向的,而Vue是双向的。KVO只支持公有直接属性(不支持私有属性和path)。 不支持defineProperty的浏览器如IE8及以下可 以使用NotificationCenter.default,没有深入研究pubsub,但应该就是pubsub机制,只不过为符合swift语法,才写成这个样子。
function Model(){ var map = new ListMap() //启用KVO功能//enableKVO是在Object.prototype中的扩展,故请放弃使用jQuery的想法,也没有使用jQuery必要! this.enableKVO(map)
}
复制代码
- BCSView和iOS UIView
UIView是iOS整个UIKit框架的基石。UIView有个layer属性。BCS仿照UI框架,BCSView同样有layer属性,而这个layer属性就是html元素。开发者可 以通过调用BCSView的API操作layer,也可以直接获取layer。BCSView的layer的默认css样式含有position = 'absolute'。 据说这种样式可以让 浏览器在进行重绘/重排时只针对这个元素,而不会影响到其他元素,契合iOS的UIView,只能说软件世界中很多原理其实是一样的。 虽然BCS山寨UIKit 框架,但考虑到实际情况,并不可能完全模仿。例如使用setStyle设置BCSView的外观,iOS对外观的设置实在太麻烦了....
BCSView.prototype.setStyle = function (cssObject) { var cssText = '' for(var name in cssObject){ if(cssObject.hasOwnProperty(name)){ cssText += name.replace(/([A-Z])/g,function(match){ return '-'+match.toLowerCase() }) + ":" + cssObject[name] + ';' } } if( typeof( this.layer.style.cssText ) !== 'undefined' ) { this.layer.style.cssText += ';' + cssText } else { this.layer.setAttribute('style',cssText); } }
复制代码
cssObject的内容和React类似:
var cssObject = { bottom:'0px', width:'100%' }
复制代码
看到这里,做前端的哥们该吐槽了。本人虽然前端代码写的少,但也看了不少(右键就能看谷歌的css我会乱讲?^_^),个人认为css其实已经臃肿不堪,即 使使用less,stylus并不能改变现状,因为html的功能越来越强大,页面越来越复杂,跟iOS/Android APP并没有太大差距。为什么不将特殊样式直接写 到元素的内联样式中,让内嵌或者外部样式只负责通用样式,例如带有公司风格的样式,反而让内联样式白白留空?style.cssText只会让浏览器重绘一次 和设置class效果是一样的。jQuery对样式的修改可能也全部都是在内联样式中完成的。React和Vue对样式的处理甚至组件这个概念也是化整为零的思路, 毕竟同一个组件的元素,外观,js代码都在同一个文件中,方便修改。利用document.body生成的BCSView对象作为所有view的window属性。
- 手势识别
已经实现语法和swift类似的手势识别器,以及NavigationController的基本功能(bar上的按钮没实现...)详见例子 BC-S/src/main/webapp/WEB-INF/html/controller.html。其中test.js的代码不是标准的MVVM设计模式,请勿吐槽。在山寨手势识别时发现iOS 各个手势识别器的识别机制并不是很一致。猜测iOS的不同识别器的实现代码是不同人写的。我只想尽量贴近iOS,并无改进想法。 - 调试
使用Firefox Version46 3DView调试DOM,可以获得和Xcode类似的体验,不过很差。
未完成的工作
- 我还没想到表示swift协议/代理概念的好方法。目前是想弄个协议/代理的清单,让开发者自行复制黏贴到代码中,再实现相应的方法。
- 极度缺乏测试。
- 大部分UI类未完成。
- IE9以上,低版本Chrome,Firefox,Opera及手机端兼容验证。
- 验证dom4.js已经包含KeyboardEvent,classList,document.head等polyfill。
- 整理补丁和参考代码作者清单。
- 尚未加入svg,webform 验证和input属性功能补丁。
- 验证patchBackgroundBorder可以修复IE6 PNG图片透明问题。
这个项目目前还是半成品。我最大的问题是做前端的朋友对这个项目有何看法?有没有应用到实际项目中的价值?
欢迎想贡献代码和提供测试帮助的朋友。
项目地址:github.com/Ken-W-P-Hua…
转载于:https://juejin.im/post/5cadc358e51d456e5633ddb2
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Bookshelf.js入门
在过去三年中,我们看到了JavaScript的普及率飙升。 多年来,已经进行了多次尝试将流行语言带入服务器 。 这些尝试中最盛行的是Node.js ,它是作为编写服务器应用程序的快速方法提供给社区的。 无论从性能还是在开发时间上,Node的卖点都是速度。 随着这种受欢迎程度的提高,社…...
2024/4/24 13:32:01 - 转载 -- NodeJs【生产环境】最佳实践:性能和可靠性
// expressjs.com// Production best practices: performance and reliability 看过了,基本理解// 这篇文章是expressjs官网的文章,非常棒,回答了用nodejs的过程中的一些比较有意义的疑问和问题,讲解也比较详细// 如上图所示,还有几篇不错的文章可以看看,大致看了一下,…...
2024/4/24 13:32:03 - 基于Electron的桌面应用开发
一、环境搭建1、安装node.js如果你的机器上还没有Node.js和npm ,请安装它们。2、安装electronwindows系统下直接在命令行输入npm install -g electron-prebuiltmac 系统需要在管理员权限下安装,输好密码就可以开始等他安装了sudo npm install -g electron-prebuilt全局安装后…...
2024/4/24 13:31:59 - nodejs定时爬虫,持续抓取
第一步:创建一个nodejs项目mkdir <projectName>cd <projectName>npm init -ynpm install -D eslintnpx eslint --init # 注:会让你选择一些配置,popular -> airbnb -> no react -> yml包 其余默认然后安装项目中所要用到的模块 npm install reques…...
2024/4/27 3:42:12 - NodeJs使用Mysql模块实现事务处理
依赖模块: 1. mysql:https://github.com/felixge/node-mysql npm install mysql --save 2. async:https://github.com/caolan/async npm install async --save (ps: async模块可换成其它Promise模块如bluebird、q等)因为Node.js的mysql模块本身对于事务的封装过于简单,而且…...
2024/4/24 13:31:57 - 《新时期的Node.js入门》读书笔记(五)
第4章 书写异步代码 为了保证执行是串行的,将下一个异步操作放到上一个异步操作的回调方法里,当代码嵌套的层数增加,代码的层次结构就会不清晰并且难以维护,这种写法被描述为回调地狱(callback hell)。 4.1 异步操作的返回值 希望通过简单的函数调用拿到异步操作的返回值…...
2024/4/24 13:32:00 - Node.js + React Native 毕设:农业物联网监测系统的开发手记
毕设大概是大学四年里最坑爹之一的事情了,毕竟一旦选题不好,就很容易浪费一年的时间做一个并没有什么卵用,又不能学到什么东西的鸡肋项目。所幸,鄙人所在的硬件专业,指导老师并不懂软件,他只是想要一个农业物联网的监测系统,能提供给我的就是一个Oracle 11d数据库,带着…...
2024/4/24 13:31:55 - node中Promise使用
node中Promise使用实例 需求:现有三个文件需要依次读取文件内容 // a.json {"next": "b.json","massage": "this is a file content" }b.json {"next": "c.json","massage": "this b file conten…...
2024/4/15 3:55:02 - 10慕课网《进击Node.js基础(一)》初识promise
首先用最简单的方式实现一个动画效果<!doctype> <html> <head> <title>Promise animation</title> <style type="text/css">.ball {width: 40px;height: 40px;border-radius: 20px;}.ball1 {background: red;}.ball2 {backgroun…...
2024/4/17 23:43:40 - Node.js(十三)——Promise重构爬虫代码
在重构代码之前,先要了解下什么是https?https协议:基于ssl/tls的http协议,所有的数据都是在ssl/tls协议的封装之上传输的,也就是说https协议是在http协议基础上添加了ssl/tls握手以及数据加密传输,因此这就是两者之间最大的区别。https模块专门处理加密访问的,区别在于搭…...
2024/4/15 3:54:59 - Mongodb 数据库基本操作语句,结合 Node.js + express + mongoose (实现增、删、改、查,批量增加、修改等,创建临时表,多表查询......)
版本说明"MongoDB": "4.0.9", // cmd命令窗输入:mongo --version "node": 10.13.0, // cmd命令窗输入:node -v "npm": 6.10.3, // cmd命令窗输入:npm -v "express": 4.16.0 // cmd命令窗输入:express…...
2024/4/15 3:54:58 - nodejs微服务框架解决方案
前言 seneca是一个nodejs微服务工具集,它赋予系统易于连续构建和更新的能力。下面会逐一和大家一起了解相关技术入门以及实践。 这里插入一段硬广。小子再进行简单整合之后撸了个vastify框架 ---- 轻量级nodejs微服务框架,有兴趣的同学过目一下,欢迎顺手star一波,另外有疑问…...
2024/4/24 13:31:54 - velocity.js 使用示例
1、概述速度已经达到1.0.0。发生了三个重要变化: jquery.velocity.js已经重命名为velocity.js,因为Velocity不再需要jQuery函数。如果你仍然使用jQuery与Velocity,你不需要改变任何代码; 速度将表现得完全一样,它总是有。 已经进行了两个向后不兼容的更改:1)当访问传递到…...
2024/4/24 13:31:56 - Promise-Bluebird源码
本作品采用知识共享署名 4.0 国际许可协议进行许可。转载联系作者并保留声明头部与原文链接https://luzeshu.com/blog/bluebirdsource 本博客同步在http://www.cnblogs.com/papertree/p/7163870.html 时隔一年,把之前结尾还有一部分未完成的博客完成。版本2.9。具体忘了哪个re…...
2024/4/24 13:31:53 - Node.js最新Web技术栈(2015年5月)
2019独角兽企业重金招聘Python工程师标准>>> nodejs是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣 推荐技术栈 express 4.x (express最新版本,初学者先别去碰koa) mongoose(mongodb) bluebird(Promise/A+实现) jade(视图层模板) moc…...
2024/4/24 13:31:51 - 白洁血战Node.js并发编程 01 状态机
这一篇是这个系列的开篇,没有任何高级内容,就讲讲状态机。 状态机 状态机是模型层面的概念,与编程语言无关。它的目的是为对象行为建模,属于设计范畴。它的基础概念是状态(state)和事件(event)。 对象的内部结构描述为一组状态S1, S2, ... Sn,它的行为的trigger,包括…...
2024/4/24 13:31:50 - 一些当前 Node.js 中最流行 ES6 特性的 benchmark (V8 / Chakra)
前言 项目 github 地址:https://github.com/DavidCai1993/ES6-benchmark 如果有想要增加的特性 benchmark ,欢迎更新benchmarks/ ,然后 PR 。 环境 CPU: Intel Core(TM) i5-2410M 2.30GHz Memory: 8GB 1600 MHz DDR3 Node.js: 5.9.0 / Node-chakracore 6.0.0-pre5 大致结论 …...
2024/4/24 11:36:51 - nodejs之mysql事务封装与使用
nodejs之mysql的事务封装简介所需模块文件结构干货部分1 此部分为mysql初始化配置信息:2 数据库连接3 orderModel的封装和对数据库的使用4 model使用到这里我们就结束了,如果你喜欢,那谢谢你的浏览,如果不喜欢,那请留下你的建议。 简介 本文章主要针对nodejs中MySQL模块下…...
2024/4/24 13:31:48 - 利用promise写出更加优美的nodejs程序
利用promise写出更加优美的nodejs程序 时间 2014-04-28 10:42:17 sundaqing的个人空间 原文 http://my.oschina.net/sundq/blog/227410 主题 Node.js 什么是 promisepromise 一个标准,它描述了异步调用的返回结果,包括正确返回结果和错误处理。关于详细的说明文档可以参…...
2024/4/24 13:31:48 - 进击Node.js基础(二)promise
一.Promise—Promise似乎是ES6中的规范PROMISE的语言标准,PROMISE/A+规范,如何使用,在什么场景下使用 Promise时JS对异步操作场景提出的解决方案(回调,观察者模式等等都是一些方案) Promise以同步的方式写代码,执行异步的操作,Promise对象和普通JS对象没什么区别,它有…...
2024/4/24 13:31:46
最新文章
- Android WebView打开网址黑屏
1.先说解决方案: // 允许执行JavaScriptbinding.webView.getSettings().setJavaScriptEnabled(true);// 启用硬件加速binding.webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);// 允许混合内容。即使是通过HTTPS加载的页面也可以显示通过HTTP加载的资源。bin…...
2024/5/8 13:11:35 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - k8s_入门_kubelet安装
安装 在大致了解了一些k8s的基本概念之后,我们实际部署一个k8s集群,做进一步的了解 1. 裸机安装 采用三台机器,一台机器为Master(控制面板组件)两台机器为Node(工作节点) 机器的准备有两种方式…...
2024/5/4 14:33:56 - c++类的继承方式
在 C 中,类的继承方式有三种:公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance)。这些继承方式决定了派生类对基类成员的访问权限。 …...
2024/5/3 14:42:38 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57