1、只清除登錄相關(guān)的store
2、不要清空store,而是用默認(rèn)值去覆蓋
async getData(start) {
try {
const response = await fetch(`mock-data/selectData${(start + 1 + '').padStart(2, '0')}.json`)
return await response.json()
} catch (e) {
console.log("Oops, error", e)
}
}沒(méi)有完整的么?
如果你是在 Java 的 main 方法里作的這個(gè)請(qǐng)求,那么這就是正常的,因?yàn)?RxJava 里的 Scheduler 里用的線程是 守護(hù)線程 所以才會(huì)有這個(gè)問(wèn)題,你可以把 subscribeOn 和observeOn 先去了就行了,或者你可以先啟動(dòng)一個(gè)普通的暫時(shí)不會(huì)退出的線程。
是通過(guò)這個(gè)URL加載的數(shù)據(jù)
http://cdi.chinaratings.com.c...
參數(shù)如下:
curl 'http://cdi.chinaratings.com.cn/smartbi/vision/RMIServlet' -H 'Cookie: JSESSIONID=DA711088E94304CAEE335B698E712F40; _ga=GA1.4.1714100648.1515147029; _gid=GA1.4.190072792.1515147029' -H 'Origin: http://cdi.chinaratings.com.cn' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: zh-CN,zh;q=0.9' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/63.0.3239.84 Chrome/63.0.3239.84 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' -H 'Accept: */*' -H 'Cache-Control: max-age=0' -H 'Referer: http://cdi.chinaratings.com.cn/smartbi/vision/openresource.jsp?resid=I8a8ae443015cbf9bbf9bb041015e0290e6a55f5c' -H 'Connection: keep-alive' -H 'If-Modified-Since: 0' --data $'encode=tSRp6kjp5w4kWp4gRip+-pkjp5w4kT(k(!RkIxQkQ4pc6L(-p+/JV/uuc\'(\'(pKKN71M79\'M19\'M1(K7i71M7iJiuu~~_7M9~/uu/ut1/ut/uuc\'(\'(pKKN71Ji~_m~~_m~~7K171Jp7um7pM(JJ_Ji/uu/utk4Qp/JT' --compressed
無(wú)論是輸出參數(shù)還是返回值,都做了混淆處理。
你想要倆行 那你把V-for 寫(xiě)在"tr"上面 因?yàn)槟阏{(diào)用的時(shí)候dom還沒(méi)有渲染,簡(jiǎn)而言之就是 你new 一個(gè)插件的時(shí)候 沒(méi)有dom,然后插件需要找到dom元素才能進(jìn)行一系列的動(dòng)作。
解決方法,放到vue的mounted生命周期,如果覺(jué)得不靠譜 再加上nextTick
SF 不知道并發(fā)峰值為多少,反正經(jīng)常性的宕機(jī)。
document.getElementsByTagName(tagname)方法可返回帶有指定標(biāo)簽名的對(duì)象的集合。
然后遍歷集合并替換。
當(dāng)嘗試以調(diào)用函數(shù)的方式調(diào)用一個(gè)對(duì)象時(shí),__invoke() 方法會(huì)被自動(dòng)調(diào)用。
PHP 魔術(shù)方法提供了這樣的功能,引用官方例子:
<?php
class CallableClass
{
function __invoke($x) {
var_dump($x);
}
}
$obj = new CallableClass;
$obj(5); // 輸出:int(5)
var_dump(is_callable($obj)); // 輸出:true
不會(huì)啊 ,當(dāng)然是一大堆SocketChannel由1個(gè)線程來(lái)處理,這些線程都會(huì)被注冊(cè)到一個(gè)Selector。
這樣寫(xiě)
from PyQt5.QtCore import QThread , pyqtSignal, QDateTime , QObject
from PyQt5.QtWidgets import QApplication, QDialog, QLineEdit
import time
import sys
class BackendThread(QObject):
# 通過(guò)類(lèi)成員對(duì)象定義信號(hào)
update_date = pyqtSignal(str)
# 處理業(yè)務(wù)邏輯
def run(self):
while True:
data = QDateTime.currentDateTime()
currTime = data.toString("yyyy-MM-dd hh:mm:ss")
self.update_date.emit( str(currTime) )
time.sleep(1)
class Window(QDialog):
def __init__(self):
QDialog.__init__(self)
self.setWindowTitle('PyQt 5界面實(shí)時(shí)更新例子')
self.resize(400, 100)
self.input = QLineEdit(self)
self.input.resize(400, 100)
self.initUI()
def initUI(self):
# 創(chuàng)建線程
self.backend = BackendThread()
# 連接信號(hào)
self.backend.update_date.connect(self.handleDisplay)
self.thread = QThread()
self.backend.moveToThread(self.thread)
# 開(kāi)始線程
self.thread.started.connect(self.backend.run)
self.thread.start()
# 將當(dāng)前時(shí)間輸出到文本框
def handleDisplay(self, data):
self.input.setText(data)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Window()
win.show()
sys.exit(app.exec_())我自己琢磨出了一種辦法,不知道可行否。
我生成3個(gè)客戶端:
處理正常req,res請(qǐng)求的
發(fā)布消息的
訂閱消息的
我本來(lái)想用訂閱消息的redis客戶端來(lái)處理正常req,res請(qǐng)求但是報(bào)錯(cuò):
ReplyError: ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT
allowed in this context
后來(lái)才知道,原來(lái)如果客戶端用于訂閱消息就不能下其他命令進(jìn)行CRUD。
所以才要再建一個(gè)客戶端處理正常的req, res請(qǐng)求。
下面是代碼:
var redis = require('redis');
var express = require('express');
var app = express();
var clientSub = redis.createClient(6379, 'localhost');
var clientPub = redis.createClient(6379, 'localhost');
var clientRes = redis.createClient(6379,'localhost');
clientRes.on('ready', function(err){
console.log('hello, i handle req/res');
});
clientPub.on('ready', function (err) {
console.log('hello, i publish');
});
clientSub.on('ready', function (err) {
console.log('hello, i subscribe');
});
clientSub.subscribe('channel1');
clientSub.on('subscribe', function (channel, count) {
console.log(`got subscribe event: ${channel} and count is ${count}`);
setInterval(()=>{
clientPub.publish('channel1', `hi, i am channel one, message at ${new Date()}`);
}, 2000);
});
clientSub.on('connect', function () {
clientSub.on('message', function (channel, message) {
var response = `received message from ${channel}:${message}`;
clientRes.lpush('myResponse', response,redis.print);
});
});
app.get('/', function (req, res) {
clientRes.lrange('myResponse',0,-1, function(err, result){
console.log(result[result.length])
res.send(typeof result);
})
})
app.listen(1338, function () {
console.log('App listening on port 1338!');
});
你把 servlet 的 method 與 HTML form 的 method(即 HTTP method) 混淆了,它們并沒(méi)有直接的關(guān)系。
而且 HTML form 的 method 屬性值只能是 get 或 post。
要實(shí)現(xiàn)自定義 HTTP method "LOGIN",你要在 servlet 添加處理 HTTP LOGIN method 的邏輯,如
// 重寫(xiě) HttpServlet.service() 以支持自定義 HTTP method。
package demo;
import javax.servlet.http.HttpServlet;
class CustomHttpServlet extends HttpServlet {
protected void service(HttpServletRequest req, HttpServletResponse resp) {
if (req.getMethod().toLowerCase() == "login") {
this.doLogin(req, res);
return;
}
super.service(req, resp);
}
protected void doLogin(HttpServletRequest req, HttpServletResponse resp) {
// 與 doGet() 類(lèi)似,在此處添加處理邏輯。
}
}
這時(shí)不能使用 HTML form 測(cè)試,應(yīng)該使用接口測(cè)試工具,發(fā)送類(lèi)似下面的請(qǐng)求
LOGIN http://127.0.0.1:8080/xxx
譬如
curl -X LOGIN http://127.0.0.1:8080/xxx試試這樣: sudo mongodump -h 127.0.0.1 -d blog -u blogUser -p blogUser --authenticationDatabase admin -o /blog/backup/
vue.js + Vue Router 創(chuàng)建單頁(yè)應(yīng)用,是非常簡(jiǎn)單的
vue-route 文檔里面就說(shuō)了。
修改答案,使用jquery遍歷tr
js的.addEventListener事件在jquery是.on這個(gè)。
getElementById("t").addEventListener("mouseover", function()
改成
$("#t tr").on("mouseover",function()
<script type="text/javascript">
$("#t").find("tr").each(function(){//遍歷tr
$("#t tr").mouseover(function(){//mouseover事件
var index = $("#t tr").index(this);
console.log("第"+ index +"個(gè)tr");
});
});
</script>
參考代碼。效果截圖
<script type="text/javascript">
document.getElementById("t").addEventListener("mouseover", function(){
if(this.getElementsByTagName("td")){
console.log("1")
};
if(this.getElementsByTagName("tr")){
console.log("2")
};
if(this.getElementsByTagName("table")){
console.log("3")
};
// if (e.target.nodeName.toLowerCase() == "td") {
// console.log("1");
// };
// if (e.target.nodeName.toLowerCase() == "tr") {
// console.log("2");
// };
// if (e.target.nodeName.toLowerCase() == "table") {
// console.log("3");
// }
}, false)
</script>
21323:請(qǐng)求不合法 多半是你請(qǐng)求參數(shù)錯(cuò)誤,最可能是 redirect_uri 編碼錯(cuò)誤
請(qǐng)嚴(yán)格按照 開(kāi)發(fā)文檔 中的api進(jìn)行請(qǐng)求
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。