js promise中如何取到[[PromiseValue]] ?
```
Promise {[[PromiseStatus]]: "resolved",
[[PromiseValue]]: "http://dl.stream.qqmusic.qq.com/M8000046HRBd0FvKLm…C380C8F140044403EDC0124&guid=489780640&fromtag=30"
}
```
有一个promise,现在取到的值为上述所示, 能不能直接从中取到 promisevalue的url?
该promise由 `QQMusic.getSong(1561).then(song => song.url)` 获得
这个程序是别人写的,再加上不太了解promise,所以请问下可否直接取到?
一个面试题关于函数的优先级
```
function Foo(){
getName = function() {
alert(1)
};
return this
};
Foo.getName = function () {
alert(2)
};
Foo.prototype.getName = function () {
alert(3)
};
var getName = function () {
alert(4)
}
function getName() {
alert(5)
}
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();
```
打印出来的结果是?2411233
但是我想的是 2514211.
有疑惑的地方
Vue如何动态修改template?
先上代码:
```
```
我在使用vue做一个工具,需要输入框中的markdown代码转为html,然后展示出来。
其中我想做的一个功能是,当用户输入:
```

```
使用marked的自定义渲染函数,转换成html(已经实现):
```
title'
```
现在的问题是,在展示的时候,使用v-html无法完成函数绑定。有没有好的方法?
简洁的说法是,我需要自己生成一段vue格式的html字符串,然后将这个字符串渲染出来,里面有各种vue指令需要绑定,该怎么做呢?
axios 可以挂在Vue原型上 为啥还有个vue-axios?
如题,这个vue-axios有什么其他用途还是多余的?
因为
```
Vue.prototype.$http = axios
和
import Vueaxios from ‘vue-axios’
Vue.use(VueAxios,axios)
```
这二者效果都是一致,这样我就感觉vue-axios显得多余。希望知道多一点的朋友,能告诉我vue-axios存在的必要,非常感谢!
vue-property-decorator 和 vue-class-component 有什么区别?
```
@Component({})
```
貌似都可以用以上方式来使用,久而久之有点混乱,请问他们之间有什么区别?或者什么场景下应该使用哪一个?
react antd table滚动条事件如何实现
### react antd table滚动条事件如何实现
### 项目开发中有一个table表格需要做懒加载效果
### 滚动条事件,就是当table的竖向滚动条到底时,就触发ajax事件再拿一定条数的数据。
如何使用filter方法递归过滤Tree数组对象
```
const treeData = [{
title: "1",
key: "1",
children: [{
title: "1-1",
key: "1-1",
children:[{
title:"1-1-1",
key:"1-1-1",
},{
title:"1-1-2",
key:"1-1-2",
}]
}, {
title: "1-2",
key: "1-2",
},{
title: "1-3",
key: "1-3",
},{
title: "1-4",
key: "1-4",
}],
}];
```
想要实现通过传入的key,过滤树,如果父级被过滤掉,该父级下面所有子级也全部被过滤。
我通过递归map,还有递归filter都没有实现过滤的效果。代码如下:
```
deleteTreeData = (data,selectedKey) => {
const newTreeData = data.filter((item) => {
if(item.children){
this.deleteTreeData(item.children,selectedKey);
}
return item.key !== selectedKey;
});
this.setState({
treeData : newTreeData,
},function(){
console.log("=====newTreeData:"+JSON.stringify(newTreeData));
});
}
```
这样写只能删除顶级菜单,请问正确的思路是什么,谢谢~
flutter:进入首页的时候判断是否登录,没登录则跳到登录页,这个怎么实现
进入首页的时候判断是否登录,没登录则跳到登录页,这个怎么实现
在命名规范的情况 你还会写注释么?
比如一些方法
```
// 封装链路信息数据
formatLinksInfo() {}
// 获取节点坐标数据
getNodesPosition() {}
// ip转数字
ipToNum() {}
// 判断元素是否全部选中
isAllElemsActive() {}
// 右键菜单选项
itemContextMenu() {}
if(target.classed('topo')){} // 拓扑图情况
if(target.classed('node')){} // 节点
if(target.classed('link')){} // 链路
```
比如像这种命名 不写注释感觉也能通过方法名或者类名 也能看懂,
但自己还是都写了 现在code review看来觉得很冗余
问一下你们关于代码注释编写原则是啥呢,能通过命名读懂的都不写么?
java 如何通过反射修改类的私有方法
网上能找到的都是修改私有变量, 访问私有方法, 我想要修改私有方法, 请问如何操作?
python循环获取json数组中某个值?
我想使用Python来获取这组Json数据中的name及short字段的值,请问该怎样循环获取呢?
```
{
"apps_count": 6,
"page_size": 20,
"items": [
{
"id": "59bf8e26959d69523e000177",
"user_id": "XXXXXX",
"org_id": "59bba986548b7a1688812a7c",
"type": "android",
"name": "yljk",
"short": "yx9a",
"bundle_id": "XXXXXX",
"genre_id": 0,
"is_opened": false,
"web_template": "default",
"custom_market_url": "",
"has_combo": false,
"created_at": 1505725990,
"updated_at": 1505726002,
"expired_at": 1505898802,
"icon_url": "https://XXXXXX.com",
"master_release": {
"version": "1.0.0",
"build": "1",
"release_type": "inhouse",
"distribution_name": "",
"supported_platform": null,
"created_at": XXXXXX
}
},
{
"id": "XXXXXX",
"user_id": "XXXXXX",
"org_id": "XXXXXX",
"type": "android",
"name": "wld",
"short": "bpdb",
"bundle_id": "XXXXXX",
"genre_id": 0,
"is_opened": false,
"web_template": "default",
"custom_market_url": "",
"has_combo": false,
"created_at": XXXXXX,
"updated_at": XXXXXX,
"expired_at": XXXXXX,
"icon_url": "https://XXXXXX.com",
"master_release": {
"version": "1.0.0",
"build": "1",
"release_type": "inhouse",
"distribution_name": "",
"supported_platform": null,
"created_at": XXXXXX
}
},
{
"id": "XXXXXX",
"user_id": "XXXXXX",
"org_id": "XXXXXX",
"type": "android",
"name": "wzlj",
"short": "1tdc",
"bundle_id": "XXXXXX",
"genre_id": 0,
"is_opened": false,
"web_template": "default",
"custom_market_url": "",
"has_combo": false,
"created_at": XXXXXX,
"updated_at": XXXXXX,
"expired_at": XXXXXX,
"icon_url": "https://XXXXXX.com",
"master_release": {
"version": "1.0.0",
"build": "1",
"release_type": "inhouse",
"distribution_name": "",
"supported_platform": null,
"created_at": XXXXXX
}
},
{
"id": "XXXXXX",
"user_id": "XXXXXX",
"org_id": "XXXXXX",
"type": "android",
"name": "maib",
"short": "y6td",
"bundle_id": "XXXXXX",
"genre_id": 0,
"is_opened": false,
"web_template": "default",
"custom_market_url": "",
"has_combo": false,
"created_at": XXXXXX,
"updated_at": XXXXXX,
"expired_at": XXXXXX,
"icon_url": "https://XXXXXX.com",
"master_release": {
"version": "1.0.0",
"build": "1",
"release_type": "inhouse",
"distribution_name": "",
"supported_platform": null,
"created_at": XXXXXX
}
},
{
"id": "XXXXXX",
"user_id": "XXXXXX",
"org_id": "XXXXXX",
"type": "android",
"name": "jieb",
"short": "jg3e",
"bundle_id": "XXXXXX",
"genre_id": 0,
"is_opened": false,
"web_template": "default",
"custom_market_url": "",
"has_combo": false,
"created_at": XXXXXX,
"updated_at": XXXXXX,
"expired_at": XXXXXX,
"icon_url": "https://XXXXXX.com",
"master_release": {
"version": "1.0.0",
"build": "1",
"release_type": "inhouse",
"distribution_name": "",
"supported_platform": null,
"created_at": XXXXXX
}
},
{
"id": "XXXXXX",
"user_id": "XXXXXX",
"org_id": "XXXXXX",
"type": "android",
"name": "xxdk",
"short": "5ewf",
"bundle_id": "XXXXXX",
"genre_id": 0,
"is_opened": false,
"web_template": "default",
"custom_market_url": "",
"has_combo": false,
"created_at": XXXXXX,
"updated_at": XXXXXX,
"expired_at": XXXXXX,
"icon_url": "https://XXXXXX.com",
"master_release": {
"version": "1.0.0",
"build": "1",
"release_type": "inhouse",
"distribution_name": "",
"supported_platform": null,
"created_at": XXXXXX
}
}
]
}
```
为什么说promise不能取消是一个缺点
什么场景下我需要取消一个promise?
我不理解的地方:
http是无状态的,那取消是不是意味着新的请求?
还是说取消仅是本地取消,不处理之前请求的结果?
一道js面试题
```
for(var i=0; i<10; i++){
setTimeout(function() {
console.log(i);
},0)
}
```
请问输出什么?
如果要输出'0123456789',要怎么改?
JS怎么获取变量名称(反射)
JS中怎么在程序执行的时候,获取变量名称。
比如通过一个函数返回指定参数的参数名。
```
jsvar paramName = 'asdf' // 不管等于什么。
var paramName2 = new Object(); // 不管等于什么。
function getParamName(p) {
// ...实现过程
var result = ...; // 这里只是模拟
return result;
}
getParamName(paramName);
getParamName(paramName2);
```
最终参数的返回结果应该为:
```
output Output:
paramName
paramName2
```
请问,类似的需求怎么实现,有没有变通的方法?
看了一下,感觉 http://segmentfault.com/q/1010000002761696#a-1020000002765874 说的比较合理。
jquery 怎么判断一个数组的最大值并显示name
像下面的这种,怎么判断后面的数字大小并输出最大数的 a:7 这种形式。
```
var arr=[{a:7},{b:2},{c:0},{d:5},{e:1}];
```
java如何获取实时cpu使用情况?
问题:java如何获取实时cpu使用情况?
我是一个java新手,我想知道如何实时获得cpu使用情况?也就是动态的,随着cpu情况,返回不同的cpu使用信息,我猜这个程序需要一直运行。非常抱歉,我不知道这么做,也没有相关的代码,但是我非常想知道,能提供一个案例吗?
我在搜索引擎上查找了很多信息都没有相关的代码,
这是我搜索到的,但这一个不是实时的,我需要一个能实时观察的,提前感谢
我搜索到的地址:https://www.cnblogs.com/Rozdy...
vue的nextTick为什么一定会比promise更先执行?
nextTick内部打比按照promise进行,那么是怎么做到比逻辑中的promise更早执行的?看源码写的是Promise.resolve().then(callback)执行回调代码callback
```
if (typeof Promise !== 'undefined' && isNative(Promise)) {
const p = Promise.resolve()
timerFunc = () => {
p.then(flushCallbacks)
// In problematic UIWebViews, Promise.then doesn't completely break, but
// it can get stuck in a weird state where callbacks are pushed into the
// microtask queue but the queue isn't being flushed, until the browser
// needs to do some other work, e.g. handle a timer. Therefore we can
// "force" the microtask queue to be flushed by adding an empty timer.
if (isIOS) setTimeout(noop)
}
isUsingMicroTask = true
}
```
请问大家,这个小算法问题,怎么改?
[
```
{
"categoryId": "373",
"parentId": "3",
"categoryName": "张三",
"sunCategorys": [
{
"categoryId": "374",
"parentId": "373",
"categoryName": "张三一",
},
{
"categoryId": "375",
"parentId": "373",
"categoryName": "张三二",
}
]
},
{
"categoryId": "374",
"parentId": "3",
"categoryName": "李四",
"sunCategorys": [
{
"categoryId": "375",
"parentId": "374",
"categoryName": "李四一",
},
{
"categoryId": "376",
"parentId": "374",
"categoryName": "李四二",
}
]
}
```
]
我想把上面数据的categoryName 和 sunCategorys里面的categoryName,categoryId的id的值取出来,组合成这样的形式,请问应该如何去写
[
```
{
"text": "张三",
"children": [
{
"text": "张三一",
"id": 374
},
{
"text": "张三二",
"id": 375
}
]
},
{
"text": "李四",
"children": [
{
"text": "李四一",
"id": 375
},
{
"text": "李四二",
"id": 376
}
]
}
```
]
在DolphinDB中怎么拼接Matrix
如果我有一个结果是一个ANY 向量,他的每一个元素是shape相同的Matrix,我怎么样可以把他合并成一个大的Matrix? 最好是纵向拼接,列数不变增加行数。
vue-cli 在写css的时候无法自动刷新浏览器是什么原因
1,修改css的时候切换到浏览器无法自动刷新,需要手动刷新才能看到效果有人遇到过这样的情况吗
修改其他到是没事 ,只是css 会有这个问题
我用的是vue-cli 3.0
附上解决后的配置:
```
// vue.config.js
module.exports = {
lintOnSave:false,
devServer:{
host:'0.0.0.0'
}
}
```
js怎么监听元素属性变化
原生js监听dom元素的属性值的变化,如果监测的目标属性发生变化。执行特定语句。
监听Dom元素的Style内部的某个特定的属性,例如display,默认为none,修改为inline时触发事件
思路:
```
1.Object.defineProperty
set,get
2.Mutation Observer API
```
发生的问题:
1.defineProperty监测的目标是对象,Dom元素的属性集合[dom.attributes]也为对象{}。attributes对象是所有的属性集合的对象,style是属性集合里下属的集合,因为style的参数多。
问题:把dom.attributes当做对象监测集合下的style,当style发生改变的时候触发Set方法内的语句。但是测试的时候,当图片的display的值发生改变时,set无触发,经测试Object.defineProperty无反应。
```
var m=document.getElementById("m").attributes; //对象{}
Object.defineProperty(m,'style',{
get:function () {
console.log('get:'+m.style);
return m.style.display;
},
set:function (v) {
console.log('set:修改后的值'+v);
m.alt='图片';
}
})
```
2.Mutation Observer API它等待所有脚本任务完成后,才会运行(即异步触发方式),不知道能不能实时触发修改。
vue watch怎样同时监听两个值的变化并执行方法?
```
watch:{
city(cur,old){
this.loadTop();
},
country(cur,old){
// this.loadTop();
},
}
```
如上,我想在城市和国家都变化的时候执行刷新的方法,而不是单一执行刷新
git 怎样删除远程仓库的某次错误提交?
在网上找到一种方法:
在本地把远程的master分支删除,再把reset后的分支内容给push上去
本地仓库 彻底回退到某一个版本
git reset –hard
删除远程的master分支 (注意master前有个:)
git push origin :master
重新创建远程master分支(这跟我们第1次提交本地代码库给远程仓库的命令一样吧)
git push origin master
我的问题是除了这种比较暴力的方法,还有别的方法吗?
怎么判断一个数组里是否嵌套子数组
我怎么判断一个数组是不是双层呢,判断后返回true和false,比如[1,1,1,1]就是false,[1,[2,2,2],1,1,1]就是true,有啥方法么,如果是三层,怎么判断呢
js字符串拼接
后台让我给他们传图片的时候给图片排序
我现在取到的图片地址是
`19998321312.jpg`
后台需要的格式是
`19998321312_01.jpg`
`19998321312_02.jpg`
`19998321312_03.jpg`
...
`19998321312_10.jpg`
`19998321312_11.jpg`
个位数在前边加 0
请问我需要怎么拼接
TOKEN加在HEADER里,使用HTTPS通信,有安全隐患吗?
在写一个WEB API,我现在是把TOKEN放在网页请求头HEADER里,使用HTTPS跟服务器进行通信。
请问这样会不会被人劫持到TOKEN呢?有点担心伪造请求。 求指点~谢谢!
vue-router的beforeEach导航钩子,next('/')出现死循环问题
为什么next()指定路径会出现死循环
```
router.beforeEach((to, from, next) => {
console.log('beforeEach');
if(true){
next('/');
}else{
next();
}
});
```
后台管理系统有必要允许多端登录么?
php在写后台管理系统的时候有必要开启多设备登录么?请发表观点,并说明原因吧,谢谢!
js对象为什么不能直接操作?
发现一个小问题,在控制台输入{a:1}.toString()会报错,必须要先把{a:1}赋值给一个变量然后在进行操作才行,这是什么情况
怎么把自己fork别人的仓库中的代码更新至最新版本?
我在Github上fork了别人一个项目,然后修改之后按照正常流程提交PR,并且对方merged了。
我现在又需要对该项目进行贡献代码,但是发现对方的项目仓库也有别人更新了新代码上去,我怎么让我自己仓库中fork的这个项目代码也同步到和对方仓库一样的最新版本代码,然后我再进行贡献?
vue-cli 更新过后手机访问不显示页面内容
今天把之前学习的demo拿出来重新写,发现vue-cli 更新后不能输入ip 进行访问了,比如我的ip 是192.168.5.212 只能是默认的127.0.0.1:8080 问了群里的大神改成host:0.0.0.0 电脑输入Ip 是可以访问了(192.168.5.212:8080)但是手机访问电脑的Ip 只显示页面的标题不显示内容。(在一个局域网下)是什么原因?
vue-awesome-swiper中loop设置true无效
### vue-awesome-swiper中loop设置true无效
数据是动态加载的,在网上查不到和我相关的问题答案
是放在子组件中,首页直接引入此swiper子组件的
### 相关代码
```
name: "sliderComponent",
props: {
cname: {
type: String,
default: ""
},
options: {
type: Object,
default () {
return {
autoplay: {
delay: 3000,
disableOnInteraction: false,
//stopOnLastSlide: false
},
loop: true,
pagination: {
el: '.swiper-pagination'
},
observeParents:true,
observer:true
}
}
},
```
不循环了,轮播到最后一个图就不动了
在Vue.js中什么是内联处理器?
在文档中 内联处理器中的方法:
请问下`内联处理器`是指的什么呢?
vue 权限控制
项目使用了vue + vue-router作为前端框架, 现在需要做权限控制,
请问怎么设计前端的权限
补充: 抱歉可能我表达不清, 意思是前端对某个角色的权限进行控制, 比如有些页面不显示, 有些按钮不能点击
无缝轮播滚动,js代码异步,出了点小问题
要轮播5张图 ,布置 5->1->2->3->4->5->1 7张图 要实现无缝
实际思路上就是最后一张滚到第一张实际是顺着滚,动画结束再取消transition切回第一张再附加transition
现在我遇到这个个问题
```
/...5->1执行的代码(有滚动动画).../
if (newLeft === -3600) { //滚到第7张图时的left,执行回滚
setTimeout(function () {
list.style.transition = 'none'; //取消动画
list.style.left = -600 + 'px'; //瞬间回滚
list.style.transition = 'left 2s linear';//恢复动画 //但是这句话回滚的时候会生效是为什么
},2000)
}
```
这么写回滚的时候动画会生效
必须要用下面的写法,第二个计时器必须大于2000几个毫秒才满足需求,
为什么会发生这种事情,计时器里面回调函数应该是同步的呀, list.style.left = -600 + 'px';不执行完后面应该是不会设置动画的呀?
```
if (newLeft === -3600) {
setTimeout(function () {
list.style.transition = 'none';
list.style.left = -600 + 'px';
},2000)
setTimeout(function () {
list.style.transition = 'left 2s linear';
},2020)
}
```
这里我发现:间隔时间1-4秒基本没用给,间隔10ms偶尔会出现回滚动画,设置20ms基本没问题
实际上还是刚刚的问题,js是单线程,会阻塞,2000ms执行的代码如果不执行完,2010ms是不会把异步代码拿来执行的,如果执行完了,那么我这个回滚应该是没有动画的。求大神解释一下
www.baidu.com为什么属于二级域名?
baidu.com属于一级域名?
www.baidu.com属于二级域名?
www.google.com.hk属于三级域名?他的顶级域名是.hk还是.com呀?
tieba.baidu.com前面为什么没有www?
www.zhaopin.longfor.com前面为啥加了www,也是属于三级域名?
为什么mysql的依赖scope是runtime?
如题,runtime意味着打包时不包含mysql依赖,没有mysql驱动发布后的项目如何正常连接数据库呢?
php new 一个类 比如$a = new Cat(); Cat后面为什么写()而不是{}
name = $name;
$this->age = $age;
}
}
$a = new Cat('小白',2);
为什么new Cat('小白',2) Cat后面是()而不是{},看起来很像是函数调用啊,虽然new一个
对象,构造函数会自动调用
因为js里面没有类,只有构造函数,所以new方式调用函数很好理解!
```
?>
一道原生JS的问题
```
function nodeToFragme(node){
var flag = document.createDocumentFragment();
var child;
while(child = node.firstChild ){
flag.appendChild(child); //请问为什么能够每次插入不同的节点?
}
return flag ;
}
```
为什么每次appendChild都能够插入不同的节点?不应该每次都是第一个节点么?
【编程进阶】js实现一个map函数
实现一个myOwnMap函数:
输入:
```
[1,2,3].myOwnMap((item, index) => {
return item *2
})
```
输出: `[2,4,6]`
求解一道关于js的百度笔试题
```
var name = "World";
(function () {
if (typeof name === 'undefined') {
var name = 'Jack';
console.log('Goodbye' + name);
} else {
console.log('hello ' + name);
}
})()
```
输出:GoodbyeJack
vue2.0如何设置全局变量
比如资源服务器的host,后台api的host,微信第三方的host。这些host不能挨个去代码里面写吧。
其实,我就是想知道vue如何设置全局变量。总感觉放到window,localstorage,sessionstorage不太正规。
js数组中对象怎么合并
var list=[{id:1,number:2,title:2},{id:1,number:3,title:2}]
如果数组中id和title的值相同,数组中两个对象合并,number值相加,怎么实现
最终得到[{id:1,number:5,title:2}]
这种switch语句块中default放前面的情况怎么走
```
int c,i;
for (int i = 1; i < 3; ++i)
{
switch (i)
{
default: c+=i;
case 2: c++;break;
case 4: c+=2;break;
}
}
printf("%d\n", c);
```
这个代码为什么会等于3啊?这里面不是default第一次i为1的时候走default: c+=i;,第二次i等于2就走case 2: c++;break;然后就结束,最后输出c=2吗?为什么是3呢?
vue中v-for写成render的形式,key怎么解决?
项目中有部分代码,写层render的形式比template会更好...
但是遇到了一个问题,我们都知道v-for的时候是必须要设置key的,当我用render去遍历一个数组的时候,key怎么设置呢?我将key放在单个组件的props或是domProps都不起作用。一下是render代码:
这里Goup和Cell都是vue对象...也就是components
```
render(h): any {
const mapNode = (h): any =>{
const conArray = [];
let hVnode = ( vNodeName, part ): any =>{
return h(vNodeName, {
props: {
part: part,
key: part.partId
},
domProps: {
key: part.partId
},
});
}
for(let item of this.partList) {
if(item.partType === 'group') {
conArray.push( hVnode(Group, item) );
} else {
conArray.push( hVnode(Cell, item) );
}
}
return conArray;
}
return h( 'div', {
attrs: {
class: 'group-list',
id: "group-list"
}
},
mapNode(h)
);
},
```
可行的方案是template,一下是代码
```
```
以上render的形式key值不起作用,表现在删除数组的时候,一定会删除最后一个(即使我删除的是第一个数组对象)...
求助道面试题,在前端项目中,如何进行seo优化,你在哪些项目里有过seo优化,效果如何?
参加面试,被问到这个,在网上查阅资料,但是找不到很好的回答
在实际项目里是如何做好seo优化的,优化后的效果是什么样的?
.vue文件中 使用@import 来导入样式的路径问题
```
```
怎么解决这个 @import 导入css文件的路径问题的
总不能一直 ../ 吧、
webpack 配置的 alias 好像不能作用在css里面里面
大佬们有什么解决办法吗??
npm run dev和npm start的区别?
这是vue脚手架的官方Webpack模版,请问一下其中的"start": "npm run dev"有什么意义
npm run dev和npm start的区别是什么呢?
为什么直接输入npm dev就不能执行scripts配置下的dev命令,而npm start就可以呢?
```
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js"
},
```
如何把数组对象相同的key值合并,并且把对应的id放到一个数组
例如旧数据:
var old = [
```
{
id: 1,
name: 'css',
type: 'html'
},
{
id: 2,
name: 'css',
type: 'html'
},
{
id: 3,
name: 'javacript',
type: 'code'
},
{
id: 4,
name: 'javacript',
type: 'code'
}
```
]
想得到的 var new = [
```
{
id: [1,2],
name: 'css',
type: 'html'
},
{
id: [3,4],
name: 'javacript',
type: 'code'
},
```
]
希望把相同name的对象合并,并且把对应的id放到一个数组
Vue v-for判断是否为第4列,然后加个横线或者第4行才显示这一个
```
```
初学vue,翻了好久,没有解决问题,特来求助。望前辈们指点
Js在数组中添加元素
如何提取数组中的字段,然后添加新的字段,获取数据如下:
```
var data = [
{"id":"1","name":"华为","data":"25u6s8f545d3"},
{"id":"2","name":"小米","data":"cd58de9d3c5d"},
];
```
我想获得的数据格式如下:
```
var data = [
{"id":"1","name":"华为","data":"25u6s8f545d3","mac":"25:u6:s8:f5:45:d3"},
{"id":"2","name":"小米","data":"cd58de9d3c5d","mac":"cd:58:de:9d:3c:5d"},
];
```
我现在方法如下:
```
for (var i = 0; i < data.length; i++) {
var mac = data[i].data.toUpperCase();
mac1 = mac.substring(0, 2);
mac2 = mac.substring(2, 4);
mac3 = mac.substring(4, 6);
mac4 = mac.substring(6, 8);
mac5 = mac.substring(8, 10);
mac6 = mac.substring(10, 12);
var mac = mac1 + ':' + mac2 + ':' + mac3 + ':' + mac4 + ':' + mac5 + ':' + mac6;
data[i].mac = mac;
};
```
请教下有没有更好的方法?我觉得自己方法有点烂。
new Promise((resolve)=>{resolve()}) 与 Promise.resolve() 等价吗
### 处理以下类型的时候这个两个方法感觉差不多
参数是一个 Promise 实例
参数是一个thenable对象
参数不是具有then方法的对象,或根本就不是对象
但我看有人说:`promise.resolve(v)`不等于`new Promise(r => r(v))`,因为如果 v 是一个 Promise 对象,前者会直接返回 v,而后者需要经过一系列的处理(主要是 PromiseResolveThenableJob)
前端进行兼容性测试的标准流程是什么?
现在业界是怎么进行兼容性测试的?不仅包括IE低版本,还有Chrome、Firefox等的低版本,还是说现在默认不测现代浏览器低版本的兼容性了?那这个低版本有没有一个具体的分界点?
es6方法过滤掉两个数组中对象id值相等的项
```
const arr1=[{id:1,name:'网'},{id:2,name:'二位'}]
const arr2=[{id:1,name:'老二'},{id:3,name:'老三'}]
```
es6方法过滤掉arr2中id和arr1 id相同的项
Vue动态面包屑导航怎么实现
没有思路,求大神解答
补充一下,我的思路是beforeEach获取上一个路由name和即将进入的路由name,然后填加到数组,最后router-link循环,但是不知道从哪下手
js算法问题
```
let arr1 = [
{
label:'张三',
value:'1'
},
{
label:'李四',
value:'2'
},
{
label:'王五',
value:'3'
}
]
let arry2 = ['1','2']
let resArry = ?
console.log(resArry) //输出 张三、李四
```
arry2中的值能对应到arry1中的value 则放入resArry中 最终打印出张三、李四
这个怎么实现呢?
JS排序问题(凑满减)
```
const list =[
{title:'苹果',price:1},
{title:'香蕉',price:4},
{title:'鸭梨',price:3},
{title:'西瓜',price:5},
{title:'山竹',price:2}];
```
我想排序, 按照price大于3的正序, 然后再把小于3的倒序, 排在大于的数据后面, 求最优算法.
期望如下:
```
const list =[
{title:'香蕉',price:4},
{title:'西瓜',price:5},
{title:'鸭梨',price:3},
{title:'山竹',price:2},
{title:'苹果',price:1}];
```
为什么.vue文件需要使用export default
```
因为项目要使用vue开发。学习了一段时间之后有几个问题一直困惑着我:
(1)首先就是.vue结尾的文件为何需要export default,就像下面的代码一样?
(2)为什么data需要return,我不用return,直接 data(){
menu:MENU.data,
poi:POILIST.data
}不行吗?
这两个问题问了几个人都不能给我合理的解释,求懂的兄弟们给个帮助,谢谢了。
```
```
```
一道关于 对象之间 值传递的问题
```
var a = {
num: 2
};
var b = a;
a.num = a = {
num: 4
};
console.log(a.num);// 4
console.log(b.num);// { num: 4 }
```
这个b.num是4不是因为 'var b = a时' b指向a了吗?那为什么下面那个没有指向a
```
var a = {
num: 2
};
var b = a; //没有把指向给b吗
a = {
num: 4
};
console.log(b.num) //为什么是2 a已经是4了b的指向还是a为什么不是4?
```
VSCode中使用vetur插件格式化vue文件时,js代码会被添加上分号且单引号会转变为双引号
由于vetur插件报错找不到某某组件,于是卸载重装。 装回后插件不再报错,但是格式化vue代码时,会执行两条多余的规则(与未重装之前比较):
- 自动为js代码加上分号结束符
- 自动将单引号变换为双引号
由于在配置(setting.json)中未找到相应的配置,故很疑惑,应如何取消掉以上两条规则?
2018/11/29 更新
```
//VSCODE扩展当前时间的最新版
vscode version: 1.29.1
prettier version: 1.7.2
vetur version: 0.14.2
```
也会出现上述问题,解决办法:修改 User Settings
```
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
// force-aligned | force-expand-multiline
"wrap_attributes": "force-aligned"
},
"prettyhtml": {
"printWidth": 100,
"singleQuote": false,
"wrapAttributes": false,
"sortAttributes": true
},
// --- 解决问题 ---
"prettier": {
"semi": false,
"singleQuote": true
}
// --- 解决问题 ---
},
```
通过docker命令行,报错:Fatal error, can't open config file,在容器内执行没问题
首先,我的dockerfile如下:
```
FROM redis:latest
COPY $PWD/redis.conf /root/
RUN ["chmod", "777", "/root/redis.conf"]
CMD ["redis-server", "/root/redis.conf"]
```
redis.conf文件的内容是从这里复制的https://raw.githubusercontent...
使用`docker build .`之后,使用`docker run -it --rm 7141cd2da206`运行,
报以下错误:
```
1:C 03 Sep 2019 12:59:48.539 # Fatal error, can't open config file '/root/redis.conf'
```
但是,我通过bash进入容器:`docker run -it --rm 7141cd2da206 bash`
执行redis-server没有任何问题,可以启动成功:
```
root@7d50439a05df:/data# ls -l /root/redis.conf
-rwxrwxrwx 1 root root 58765 Sep 3 12:59 /root/redis.conf
```
```
root@7d50439a05df:/data# redis-server /root/redis.conf
8:C 03 Sep 2019 13:05:46.070 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
8:C 03 Sep 2019 13:05:46.070 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=8, just started
8:C 03 Sep 2019 13:05:46.070 # Configuration loaded
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 8
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
8:M 03 Sep 2019 13:05:46.072 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
8:M 03 Sep 2019 13:05:46.073 # Server initialized
8:M 03 Sep 2019 13:05:46.073 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
8:M 03 Sep 2019 13:05:46.073 * Ready to accept connections
```
很困惑啊。。。!!
-----更新------
把dockerfile里redis-server替换成绝对路径又可以了:
```
FROM redis:latest
COPY $PWD/redis.conf /root/
CMD ["/usr/local/bin/redis-server", "/root/redis.conf"]
```
???
关于promise中reject和catch的问题
reject和catch是否都会执行,或者只执行其中一个,分别在什么情况下执行?
.ts文件识别不了.vue 文件?
main.ts
```
import Vue from "vue";
import Component from "vue-class-component";
import App from "./App.vue";
```
报这个错误
Cannot find module './App.vue' or its corresponding type declarations.
tsconfig.json
```
{ // 编译选项
"compilerOptions": {
// 编译输出目标 ES 版本
"target": "esnext",
// 采用的模块系统
"module": "esnext",
// 以严格模式解析
"strict": false,
"jsx": "preserve",
// 从 tslib 导入外部帮助库: 比如__extends,__rest等
"importHelpers": true,
// 如何处理模块
"moduleResolution": "node",
// 启用装饰器
"experimentalDecorators": true,
"esModuleInterop": true,
// 允许从没有设置默认导出的模块中默认导入
"allowSyntheticDefaultImports": true,
// 定义一个变量就必须给它一个初始值
"strictPropertyInitialization" : false,
// 允许编译javascript文件
"allowJs": true,
// 是否包含可以用于 debug 的 sourceMap
"sourceMap": true,
// 忽略 this 的类型检查, Raise error on this expressions with an implied any type.
"noImplicitThis": false,
// 解析非相对模块名的基准目录
"baseUrl": ".",
// 给错误和消息设置样式,使用颜色和上下文。
"pretty": true,
// 设置引入的定义文件
"types": ["webpack-env", "mocha", "chai"],
// 指定特殊模块的路径
"paths": {
"@/*": ["src/*"]
},
// 编译过程中需要引入的库文件的列表
"lib": ["esnext", "dom", "dom.iterable", "scripthost"],
"typeRoots": [
"./types",
"./node_modules/vue/types",
"./src"
],
},
// ts 管理的文件
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx"
],
// ts 排除的文件
"exclude": ["node_modules"]
}
```
shims-vue.d.ts
```
import Vue from "vue";
import VueRouter, { Route } from "vue-router";
declare module '*.vue' {
export default Vue
}
declare module "vue/types/vue" {
interface Vue {
$router: VueRouter; // 这表示this下有这个东西
$route: Route;
$http: any;
$Message: any;
$Modal: any;
}
}
```
第一次用ts写vue,不知道为什么报这个错误,
.vue文件里能识别.vue文件,.ts文件里就识别不了,但是页面能正常打开
package.json
```
{
"name": "scgx",
"version": "0.1.0",
"private": true,
"scripts": {
"start": "vue-cli-service serve",
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
},
"dependencies": {
"axios": "^0.18.0",
"element-ui": "^2.13.2",
"vue": "^2.6.6",
"vue-class-component": "^6.0.0",
"vue-property-decorator": "^7.0.0",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
},
"devDependencies": {
"@types/chai": "^4.1.0",
"@types/mocha": "^5.2.4",
"@vue/cli-plugin-babel": "^3.5.0",
"@vue/cli-plugin-eslint": "^3.5.0",
"@vue/cli-plugin-typescript": "^3.5.0",
"@vue/cli-plugin-unit-mocha": "^3.5.0",
"@vue/cli-service": "^3.5.0",
"@vue/eslint-config-prettier": "^4.0.1",
"@vue/eslint-config-typescript": "^4.0.0",
"@vue/test-utils": "1.0.0-beta.29",
"babel-eslint": "^10.0.1",
"babel-plugin-component": "^1.1.1",
"chai": "^4.1.2",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0",
"less": "^3.0.4",
"less-loader": "^4.1.0",
"typescript": "^3.2.1",
"vue-template-compiler": "^2.5.21",
"vuex-class": "^0.3.2"
}
}
```
vue.config.js
```
const path = require("path");
const sourceMap = process.env.NODE_ENV === "development";
module.exports = {
// 基本路径
publicPath: "./",
// 输出文件目录
outputDir: "dist",
// eslint-loader 是否在保存的时候检查
lintOnSave: false,
// webpack配置
// see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
chainWebpack: () => {},
configureWebpack: config => {
if (process.env.NODE_ENV === "production") {
// 为生产环境修改配置...
config.mode = "production";
} else {
// 为开发环境修改配置...
config.mode = "development";
}
Object.assign(config, {
// 开发生产共同配置
resolve: {
extensions: [".js", ".vue", ".json", ".ts", ".tsx"],
alias: {
vue$: "vue/dist/vue.js",
"@": path.resolve(__dirname, "./src"),
"@c": path.resolve(__dirname, "./src/components"),
utils: path.resolve(__dirname, "./src/utils"),
views: path.resolve(__dirname, "./src/views"),
assets: path.resolve(__dirname, "./src/assets"),
com: path.resolve(__dirname, "./src/components")
}
}
});
},
// 生产环境是否生成 sourceMap 文件
productionSourceMap: sourceMap,
// css相关配置
css: {
// 是否使用css分离插件 ExtractTextPlugin
extract: true,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {},
// 启用 CSS modules for all css / pre-processor files.
modules: false
},
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
parallel: require("os").cpus().length > 1,
// PWA 插件相关配置
// see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
pwa: {},
// webpack-dev-server 相关配置
devServer: {
open: process.platform === "darwin",
host: "localhost",
port: 3001, //8080,
https: false,
hotOnly: false,
proxy: {
// 设置代理
// proxy all requests starting with /api to jsonplaceholder
"/api": {
target: "http://localhost:8989/",
changeOrigin: true,
ws: true,
pathRewrite: {
"^/api": ""
}
}
},
before: app => {}
},
// 第三方插件配置
pluginOptions: {
// ...
}
};
```
js 数组合并问题
业务描述,在日历上显示一个月跑步的日期
日历这快完全是用前端js实现的,所以只需要后台给一个跑步日期的数组插进日历的数组里就行了,我的思路是做两层循环,但是这样计算量很大,有没有更好的方法?
后台返回一个月中跑步的日期
```
[1,4,6,8,21]
```
前端某月 日历数组
```
[{day:1},{day:2}......{day:31}]
```
希望合并的最后的结果是
```
[{day:1,isrun:false},{day:2,isrun:false}...{day:4,isrun:true}...{day:6,isrun:true}....{day:31,isrun:false}]
```
为什么webpack可以通过require('path')直接使用node.js的内置模块
这个问题可能看起来很搞笑,我也经常用webpack,用到node.js的模块时,因为之前跟着教程学习的缘故,所以也没觉得有什么奇怪。
可是现在想想,为什么webpack可以通过require('path')直接使用node.js的内置模块呢?
感觉webpack在打包时,通过node起了一个服务吧。或者说,用webpack时,项目本身已经是一个node项目了?
问一个react更新State的问题?
读react官网:
状态更新可能是动态的
```
// Wrong
this.setState({
counter: this.state.counter + this.props.increment,
});
```
官网说这种写法是错误的
```
// Correct
this.setState((prevState, props) => ({
counter: prevState.counter + props.increment
}));
```
这种写法是正确的
我实在搞不懂为什么第一个是错误的,第二种写法是正确的,哪位大神能帮忙解释一下?在哪种需求场景下,会出现上述的情况,最好能写点代码解释下,多谢,大神们指导。
关于vuex的作用。
刚学过vuex,现在自己做了个电商小项目准备用下vuex,于是我就想说到把购物车的商品放vuex里边,方便不同组件调用到购物车里边的数据,但是实际项目中,我想了下又感觉vuex没什么用,原因如下:
当我们点击加入购物车的时候,肯定要把需要加入购物车的商品传给后台呀。那我们进入到购物车组件里边,直接从后台调取数据不就直接可以看到购物车的商品?根本没必要把需要加入购物车的商品传给vuex呀。(当然有一种可能就是传给vuex,可以直接读取,不用再调用后台数据。)
是我vuex用在购物车上本来就是错的?那我可以用在什么地方,举几个例子
css如何让某个元素不继承父元素的宽度,而让子元素撑开他?
这里这个例子:
https://jsfiddle.net/93bh7vpz/
如何让inner这一层和里面所有层的宽度都等于最最最里面的
如何理解three.js中的buffergeometry?
如何理解three.js中的buffergeometry?
buffergeometry与Geometry 相比优势与劣势是什么?
最适用于什么样的场景?
vuex中存储的数据在页面刷新之后都是失去,我想让vuex中的数据在刷新之后不会丢失怎么办。
1.vuex中存储的数据在刷新页面(F5)之后会丢失全部的数据
2.我想刷新页面之后不丢失。同时我还不想存储在window中的session和local中
vuex中有没有相应的数据存储方法或者设置可以做到这样的效果
从mysql查出200万数据有什么好的办法
查询的时候老是崩溃
每日百万数据量的订单表如何导出到excel
需求是这样的:系统每日会产生上百万的成交订单,客户需要每天导出一份给他们,因此需要每天生成一份大数据量的excel。
首先想到的就是在定时任务中通过for循环分页访问数据库,然后分批导出到excel。但是for循环中访问数据库,如果测试不充分或者程序有bug会导致频繁访问数据库,会严重影响数据库的性能。其实在循环中访问数据库本来就是一种不好的习惯。
有什么好的方案或者建议吗?
if判断是否有值,但是这个值为0,它也判了不过请问怎么写呢
```
// row保存
saveRow (record) {
const { num, id } = record
if (!num) { // 这里为0也走了,怎么判断单纯有没有值
this.tableLoading = false
this.$message.error('请填写完整信息。')
return
}
},
```
PHP命名空间中define和const的区别
比如在a.php用define定义一个常量,在b.php中声明一个命名空间 && 引入a.php
此时在b.php中无法再次定义同名的常量,然而用const却可以,求解,谢谢诸位
```
a.php代码:
define('ROOT','123');
b.php代码:
namespace web360;
require 'c.php';
define('ROOT','123');
```
此时会报错(常量已经定义)
而如果用const定义的话,则不会出现此问题
关于mogodb缓存
```
With WiredTiger, MongoDB utilizes both the WiredTiger internal cache and the filesystem cache.
Starting in 3.4, the WiredTiger internal cache, by default, will use the larger of either:
50% of (RAM - 1 GB), or
256 MB.
```
mongodb4.0文档,大概意思是mongodb使用internal cache and the filesystem cache,
(1))请问一下如果机子内存2g,那么按照上面的计算,internal catche将占用512m,如果数据增加,内存占用超过512m,是不是就开始启用filesystem cache,把此时数据缓存放在空闲内存上,两者有没有先后顺序?
(2)既然两者都是放在内存中,为什么还要分两类缓存,是不是internal cache占据内存是不能被释放的,filesystem cache占据的是会被其他服务挤掉的,是这样吗?
(3)这些缓存是不是也是压缩过的?
Nodejs里运行npm run dev shell脚本无效果?
### 问题描述
Nodejs里如何运行npm run dev shell脚本?
### 问题出现的环境背景及自己尝试过哪些方法
1、在webpack构建的模块里,npm run script一个node脚本文件,但是我想在这个脚本文件里运行其它的npm run,尝试了require('child_process').exec但是无效,执行到这里什么反应都没。
### 相关代码
var exec = require('child_process').execSync
exec('npm run dev')
### 你期待的结果是什么?实际看到的错误信息又是什么?
或者在node脚本js文件里如何才能正确执行package.json里的script呢?
### 补充贴上
```
{
"name": "vue",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "author@gmail.com",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"modify": "node script/modify-path.js",
"build:prod": "npm run modify && npm run build --no-cache",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js"
},
"dependencies": {
"fg-loadcss": "^2.0.1",
"vue-router": "^3.0.1"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"commander": "^2.16.0",
"copy-webpack-plugin": "^4.0.1",
"cross-env": "^5.2.0",
"css-loader": "^0.28.0",
"eslint": "^4.19.1",
"eslint-config-standard": "^11.0.0",
"eslint-friendly-formatter": "^4.0.1",
"eslint-loader": "^2.0.0",
"eslint-plugin-import": "^2.13.0",
"eslint-plugin-node": "^6.0.1",
"eslint-plugin-promise": "^3.8.0",
"eslint-plugin-standard": "^3.1.0",
"eslint-plugin-vue": "^4.7.0",
"execa": "^0.10.0",
"file-loader": "^1.1.11",
"fontfaceobserver": "^2.0.13",
"fontmin": "^0.9.7-beta",
"fontmin-webpack": "^2.0.1",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^3.2.0",
"inquirer": "^6.0.0",
"js-yaml": "^3.12.0",
"mini-css-extract-plugin": "^0.4.1",
"node-notifier": "^5.1.2",
"node-sass": "^4.9.2",
"optimize-css-assets-webpack-plugin": "^5.0.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"sass-loader": "^7.0.3",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^1.0.1",
"vue": "^2.5.16",
"vue-loader": "^15.2.4",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webfont-webpack-plugin": "^0.2.2",
"webpack": "^4.16.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-cli": "^3.0.8",
"webpack-dev-server": "^3.1.4",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
```
Python requests.get 爬虫 设置代理 IP地址未改变
工作需要爬取亚马逊上面的信息,但是亚马逊反爬虫太厉害,同一个IP地址会被封。
Python版本:3.6, IDE:Pycharm 2017.1
在网上查了很多资料,requests库的手册也读过,但是都是同一个方法,代码如下:
```
import requests
'''代理IP地址(高匿)'''
proxy = {'HTTPS': '117.85.105.170:808'}
'''head 信息'''
head = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
'Connection': 'keep-alive'}
'''http://icanhazip.com会返回当前的IP地址'''
p = requests.get('http://icanhazip.com', headers=head, proxies=proxy)
print(p.text)
```
根据我看过的许多教程的理论,如果代理设置成功,最后显示的IP应该是代理的IP地址,但是最终还是我真实的IP地址,这样一来不就等于没有设置代理么?
python redis 列表插入 速度太慢
```
pool = redis.ConnectionPool(host=host, port=port)
client = redis.StrictRedis(connection_pool=pool)
for i in range(10000):
for j in range(30):
client.lpush(IDLE_TASKS, json.dumps(args))
```
这种执行效率低的可怕。
需要等几十秒,才能插入完成。
请问有没更高效率的处理手法?
args 只是以一个元组内容随意(1,2,"3")之类
如何高效的监控多台服务器,该做哪些方面的监控?
系统的服务器多了,独立运行的服务进程多了,服务进程间的通讯多了,该做那些监控,该怎么监控?有没有什么成熟的思想想法?
监控是不是可以分为2个方面:1)系统级别的监控(cpu,memory,io,disk,net),服务是否存活
2)应用级别(各子系统业务相关异常监控)
具体的,怎么来实现这个监控,做到一个可灵活配置、扩展的插件式监控平台?感觉还是比较棘手
查阅了资料后,我打算先这么做:
1:Nagios作为CPU、内存、硬盘等各个基本非业务的监控
2:各个业务模块做自己相关的监控:服务异常监控、服务统计信息等
1)服务异常信息通过mq异步的发送给监控主服务器,由监控主服务器统一处理
2)服务统计信息先在本地模块内存汇总,然后定时间隔的发送给监控主服务器进行持久化等相关处理
Vue 点击切换颜色
第一次点击span 字体变颜色,再次点击恢复原来颜色,做成选中的效果
代码:
```
健康医疗生活服务旅游金融
信息安全广告营销数据服务智能硬化
文化娱乐网络招聘分类信息电子商务
移动互联网企业服务社交网络
```
我是小白>_< 大神们,这个怎么弄???
。。。有木有选择span标签进行判断的方法>_<。。。
javascript中forEach,map,for of的应用场景与效率?
这裡讨论的是lodash版本的_.forEach和_.map,原生ES6 javascript的for of这三种方法。
目前我的使用思路是,如果是要遍历并改变Array并回传一个新的Array,那我就选择_.map。
至于for of 和_.forEach,我用了以下的方式测试效能:
forEach
```
let arr = [];
for(var i = 0 ; i<50000000 ; i++){
arr.push(i);
}
var start = Date.now();
let sum = 0;
_.forEach(arr,(a)=>{
sum += a;
});
var end = Date.now();
console.log('总数:'+sum,'毫秒数:'+(end-start));
//总数:1249999975000000 毫秒数:1530
```
for of
```
let arr = [];
for(var i = 0 ; i<50000000 ; i++){
arr.push(i);
}
var start = Date.now();
let sum = 0;
for(let a of arr){
sum += a;
}
var end = Date.now();
console.log('总数:'+sum,'毫秒数:'+(end-start));
//总数:1249999975000000 毫秒数:575
```
for of速度大胜_.forEach,所以在遍历Array时,我现在会使用for of而不是_.forEach。
我想问的是,这样的思路有问题吗?
_.forEach要在什麽时候使用呢?
我自己想到的_.forEach使用时机是遍历Object时,javascript原生的话应该是和for in比较。
请教一道算法题,如下,谢谢!
有一个数组`[1,1,1,2,3,4,5,8,10,22,24,25,26,66]`,
请写一个方法把数组变成`[1,1,[1,2,3,4,5],8,10,22,[24,25,26],66]`
就是把里面连续递增的数字归成一个数组,没思路,有没有好的方案?
关于javascript es6 class中static方法的使用场景
我们知道在class中定义的static方法,在使用时可以直接调用,不用实例化,我的疑惑是
1. 在定义类的方法的时候,什么方法适宜定义成static,什么方法不用?
2. 我可不可以把类中的方法都定义为static,这 样做有什么弊端没有?
还请详细介绍下class的适用场景以及static的适用场景,不胜感激!
Js怎么做这题目,
4444
333
22
1
22
333
4444
用JS怎么做。我只会做1以上那半求大神
4444
333
22
1
22
333
4444
我只会做1上面那半
闭包:js这样写有什么好处?
很多地方都可以看到js代码用
```
(function($){
//代码
var demo = function(){
};
var demo2 = function(){
};
})(jQuery)
```
这样包起来,这是js闭包吧。把js代码写到这个里面有什么好处呢?
```
```
前后端分离koa2的作用是什么?
如前后端分离项目 vue + axios + koa2 + java(springboot) 使用restful风格api
问题:
1. koa2到底扮演什么角色?具体点就是什么代码应该写在koa2中呢?
2. vue+koa2 前端组合下,路由应该写在哪里呢?vue-router? koa? koa-router?,如果vue和koa2中写两次路由意义在哪里?
3. 有人说的一个场景,后台一般不会把数据根据前端展示字段包装,而是一坨扔过来,然后用koa2进行拆解整合,在给vue显示,这算koa2存在的一个理由么?
4. 用 vue-cli 生成一个项目, 其实就都可以实现前端要求了包括node服务器、webpack等,那么极端点说:在加上axios就都可以啦,koa2没用啊......
vim怎么粘贴其他地方复制的代码?
我在网页上复制了一段代码,想粘贴到vim中。
第一次粘贴的时候,总会丢失复制内容的起始几个字符,紧接着第二次粘贴则正常,是什么原因?
下面是`Hello, world!`为粘贴内容的测试结果,共粘贴两次,可以看到,第一次(前面两行)很奇怪,第二次(第三行)正常。
```
1
2 , world!
3 Hello, world!
```
左侧的1 2 3为行号
JavaScript 为什么页面会先显示alert()框,而不是先显示页面元素?
显示顺序
1.显示提示框(此时页面一片空白)
2.点确定后正常显示HelloWorld
```
```
为什么页面会先显示alert()框,而不是先显示HelloWorld,我的代码明明是HelloWorld写在上面?
【mongoose】连接警告:`open()` is deprecated in mongoose >= 4.11.0
mongoose 连接成功,但是发出警告,好像是新版本要修改哪?错误信息如下
```
DeprecationWarning: `open()` is deprecated in mongoose >= 4.11.0,use `openUri()` instead, or set the `useMongoClient` option if using `connect()` or `createConnection()`
```
网上找了半天没有结果,求答案,附上连接代码
```
var mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection
db.on('error', console.error.bind(console, '连接错误:'));
db.once('open', function() {
console.log('连接成功');
})
```
引入vux,v-chart 报错
引入vux,v-chart 报错,错误信息如下:
```
ERROR Failed to compile with 1 errors 18:17:42
error in ./node_modules/_vux@2.9.1@vux/src/components/v-chart/mixin.js
Module parse failed: Unexpected token (18:6)
You may need an appropriate loader to handle this file type.
| this.$parent.set(this.chartName, {
| shape: defaultShapeMap[this.chartName] || '',
| ...this.$props,
| ...camelAttrs(this.$attrs)
| })
```
Vue.prototype的问题
我用Vue在main.js中创建
```
Vue.prototype.a = 1; 这个全局的变量后;
```
在组件a中使用
```
console.log(this.a); // => 1
this.a = 2;
```
然后从a跳到b后;
```
console.log(this.a);
```
还是1,不是2,为什么? 怎么修改这种全局的变量啊?还是说用其他的方法设置和修改全局的变量或对象?
Java使用消息队列还是直接使用线程池ExecutorService异步处理?
说说这两种的区别,各自适合什么场景?
用线程池ExecutorService异步处理:我理解`ExecutorService`其实也是内部使用了队列(如`LinkedBlockingQueue`),所以从设计上,其实和使用中间价的消息队列是差不多一致的。只是这里应用服务器既充当生产者又充当消费者,也是消息队列中间价的实现者。这种应该适合非分布式的架构,比如简单的只有一台服务器。
使用消息队列:消息队列(指activeMQ,rabbitMQ,kafaKa,Redis等)因为一般都是中间件,部署在其他机器,需要一定的网络消耗。
本着解耦的目的,使用后者更合理,因为应用服务器一般内存也不会太多,队列长度不易太长。让应用服务器只处理逻辑比较合理。适合分布式架构。
1.使用`JDK`提供的异步框架`ExecutorService`。
```
threadPool.execute(new Runnable() {
@Override
public void run() {
// 这里是异步处理的,比较耗时的逻辑,比如数据库操作
userService.setDefaultAddressId(user.getUserId(), bookingForm.getAddressId());
}
});
```
2.将消息发送到消息队列,如使用`redis`的`List`简单实现,然后后台线程消费消息。
```
// 生产消息
redisTemplate.opsForList().leftPush(LOG_MQ_KEY, JsonUtil.beanToJson(httpRequestLog));
// 后台线程异步消费消息
String popValue = redisTemplate.opsForList().rightPopAndLeftPush(LOG_MQ_KEY, TEMP_LOG_MQ_KEY);
```
JS 中 new Date 默认为1或0的问题
最近看到了一个获取天数的写法,之前一直没用过,直接上代码
```
let dayLength = new Date(2017,2,0); //28
```
有哪位大佬知道上面为什么能得到2017年2月的总天数吗?
看了 MDN 没找到答案MDN_Date
请问现在那个使用那个跨前端技术会比较好。
React Native / Weex / Flutter / uni-app 如何选择好呢
TS中报错说style在element类型中不存在怎么办
我用queryselectorall去获取一个dom元素集合,然而在编译时却报错说property 'style' does not exist on type 'element'。在控制台里看block集合里各个元素是有style属性的,但是用for循环去遍历就没了。求指教一下,是不是要转类型,或者是要用foreach去遍历?
用的是typescript。
代码:
```
var winWidth = document.body.clientWidth;
var height = winWidth*1.23;
let block = document.querySelectorAll(".block");
for(var i=0;i
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters({ //不理解为什么要把这个computed的内容转成数组
goods_list: 'goods_list',
userInfo:'userInfo'
})
}, }
```
请问如何在html中输出字符串中的换行符
我在后台获取了一段字符串输出到前台的标签中,但是字符串中有换行符'n',我想同样输出换行的效果。请问应该如何处理这段字符串呢?我把'n'替换成了
还是不行,原样输出了。
谢谢大家
PHP有办法在闭包外部得到闭包内部的变量吗?
```