CSDN问答——精选问答Vol.10
Posted 问答小精灵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSDN问答——精选问答Vol.10相关的知识,希望对你有一定的参考价值。
《精选问答》挑选CSDN问答频道每周最新最热的优质回答,为大家提供可信赖的优质解答,点击查看更多已解决问题
目录
1、asp.net网站IIS应用程序池自动回收时假如正好用户在处理数据,如何处理?
2、matlab用syms绘制分段函数,用fplot绘制不在定义域的函数曲线
3、前端vue 从几万条数据中查找出来一条,查询过程非常慢怎么解决
4、python的re模块为何在第一次调用时,其中_cache就是非空的
5、Linux 上安装 Python3的时候,无法配套openSSL
1、asp.net网站IIS应用程序池自动回收时假如正好用户在处理数据,如何处理?
问题描述:
假如用户在用页面的功能保存一些数据(假设1万行)到数据库,数据有一半已经进入到数据库了,这时候正好应用程序池自动回收了,所有变量等等东西都清空了,会话结束了。岂不是很容易产生错误?
我同事说回收机制跟session一样,如果有人访问,回收时间会自动往后延长。---经测试,不会延长,时间一到立马回收。还有人说把回收时间定在半夜12点。---万一半夜12点也有用户在用呢?
这个问题困扰我多年。虽然在实际项目中没有管过这个回收是否会导致问题也从未发生过类似的问题,但是我隐约感觉到这个回收是会导致一些错误发生的。想听听大家的看法和解决方案
解决方案——来自@blkq的回答
定时回收的时候,被回收进程首先停止接受新请求,然后默认有90秒时间处理已有的请求,这个时间可配置。如果90秒都完不成,客户端收到超时通知,重试会被新的进程处理。
本题更多回答戳链接:https://ask.csdn.net/questions/7471535
2、matlab用syms绘制分段函数,用fplot绘制不在定义域的函数曲线
问题描述:
使用matlab绘制函数y=1/x的曲线图,尝试使用了syms 的方法,和fplot的方法,面临的问题是:fplot可以绘制分段函数,可是在x=0的左右两侧会有一个线,如图所示:
为了解决这个办法,分别绘制了两条曲线,使用命令:
fplot(f,[-3,3,-3,3])
fplot(@(x)1/x,[-3,0,-3,3]);hold on;
fplot(@(x)1/x,[-0,3,-3,3]);
axis([-3,3,-3,3])
得到的图好看的多了。但是右上角会出现data是两条曲线,如图所示:
这不符合要求。于是在增加一个命令:
legend('y=1/x');
貌似把这个曲线标注给解决了,可实际上plot的原始数据依然是两个曲线。因为点击legend的图标,已然会出现两条曲线。如图:
所以我的问题是:使用fplot如何把两个不连续的定义域连结起来,整成一条曲线呢?也就是如何去掉不在定义域的点呢?对于syms的方法,可以很好的把不在定义域的点去掉,但是syms怎么画分段函数呢!
解决方案——来自@CSDN专家-Matlab_Fans的回答
解决办法:使用nan非数进行镂空
x = linspace(-3,3,500);
f = @(x) 1./x;
for ii = 1:length(x)
if abs(x(ii))<0.03
x(ii) = nan;
y(ii) = nan;
end
end
plot(x,f(x))
legend('y=1/x')
本题更多回答戳链接:https://ask.csdn.net/questions/7471731
3、前端vue 从几万条数据中查找出来一条,查询过程非常慢怎么解决
问题描述:
类似于一个模糊搜索的功能 从几万条中查找 速度慢 要20s往上 怎么解决
解决方案——来自@风雪一更的回答
正常情况下都是交给后端处理,但我就喜欢挑战不可能。
如果你的需求非要前端处理,以下方案可供尝试:
假设要查询的数据为用户名,前端有10000条用户名数据,不要全部放进一个一维数组里。
根据名字拼音首字母,做成如下形式:
var nameArr = [
{
firstName:'A',
list:['爱新觉罗','哀绿'...]
},
{
firstName:'B',
list:['保罗','波塞东'...]
}
...
]
此时最外围数组只有26项(即26个首字母)
监听输入框获取焦点后,添加键盘按键监听事件,判断按下的第一个字母,进行一次检索,定位到数组内对应的首字母,定义个变量储存。
点击查询时,直接从该首字母的list数组中检索。
假设总数据10000条,分成26项后,每个list平均只有385条数据。在385条数据中检索你输入框的内容,相信要比在10000条里搜索快得多!
本题更多回答戳链接:https://ask.csdn.net/questions/7473279
4、python的re模块为何在第一次调用时,其中_cache就是非空的
问题描述:
通过debug发现调用re.compile时会先去_cache中找结果,但即使第一次调用,_cache也已存了几百个键值对了,但并没找到装这些键值对的过程。
解决方案——来自@blkq的回答
re是全局的,其它模块也会使用它。要希望确认是哪些地方调用到,可以把下面的代码加到re.py,然后执行debug。加到_cache[type(pattern), pattern, flags] = p的前面
print(".......................................................")
import sys
getframe_expr = 'sys._getframe({})'
print(eval(getframe_expr.format(3)))
print(".......................................................")
print(len(_cache))
本题更多回答戳链接:https://ask.csdn.net/questions/7470994
5、Linux 上安装 Python3的时候,无法配套openSSL
问题描述:
我有一台云主机是CentOS的,然后打算安装Python3+pip3,pip3用来下载一些包,其中涉及一些https的包需要Python3拥有SSL功能。我现在的处境是Python3没有SSL功能。
我在/usr/local 目录安装了openSSL,且用命令行可以输出openSSL的版本信心1.1.1
我安装python3.8,首先按照网上的说法修改安装包里的modules/setup这个文件的四行,定位SSL=/usr/local/openssl(按道理它就能抓到我安装的openssl啊!)。
然后./configure,在make。make的时候报错:一堆的undefined reference。比如下面这句报错
libpython3.8.a(_ssl.o): In function `PyInit(short, short, long)':
/root/Python-3.8.1/./Modules/_ssl.c:6382: undefined reference to `OpenSSL_version_num'
问题是,为什么呢?我不是已经安装了openssl,为什么python却抓不到这个openssl呢?
我也试过在./configure --with-openssl=/usr/local/openssl 也不行。实在没办法了。另外,我使用2.7版系统自带的Python可以 Import ssl。
直接用命令安装python3和pip3,sudo yum install python3,sudo yum install python3-pip
使用命令分别是python3和pip3
本题更多回答戳链接:https://ask.csdn.net/questions/7473611
6、前端怎么解决公共开放接口跨域
问题描述:
在网上找到了一个公共开放的接口地址,放到浏览器和postman中都是可以运行的,但是在我自己的项目中是一直存在跨域问题,看网上说使用jsonp来解决问题,但是现在又报了一个请 求超时的错误
如图所示,不知道怎么解决,有人可以教下吗,可以不用jsonp来解决也行,只要能解决就可以。
项目是用vue cli@3x 创建的,https://qqlykm.cn/api/qq/api.php?qq=731497596这个是接口地址,求解决!
解决方案——来自@CSDN专家-showbo的回答
要在你服务器端来获取跨域的数据,ajax请求你自己服务器的页面,而不是ajax直接请求跨域的页面。这样是报跨域错误的。
除非对方接口支持jsonp数据(或者设置了Access-Control-Allow-Origin响应头为*或者你的域名允许跨域请求),注意是 jsonp (一段js代码,一般是 回调函数名(数据) 这种格式),不是json。
本题更多回答戳链接:https://ask.csdn.net/questions/7473271
7、ajax请求头怎么带token
问题描述:
前端要怎么写才能调用这个api的数据(现在访问不了,是401)
这个是token
解决方案——来自@blkq的回答
你这个看起来是jwt token,放Header里:
$.ajax({
type: "GET",
url: "/access/logout/" + userCode,
headers: {'Authorization': token}
});
或者
$.ajax({
type: "GET",
url: "/access/logout/" + userCode,
beforeSend: function(request) {
request.setRequestHeader("Authorization", token);
},
success: function(result) {
}
});
本题更多回答戳链接:https://ask.csdn.net/questions/7471001
以上是关于CSDN问答——精选问答Vol.10的主要内容,如果未能解决你的问题,请参考以下文章