在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ HTML問答
誮惜顏 回答

mapSteta輔助函數(shù)幫助我們生成計算屬性,就是最后我們使用的計算屬性是生成的,減少了代碼量吧

未命名 回答

雖然不怎么會Node,但我知道大部分的文檔這么寫都意味著后面是可選參數(shù)。
中括號的意思就是里面的內(nèi)容不是必須的

蝶戀花 回答

driver.find_element_by_xpath(//div[@id='oHxP64']").click() 用這個試一試那,選擇他們的id不是比你這個要好?首先你要看看print driver.find_element_by_xpath("http://span[text()='資源管理']") 是否能找到元素

夢一場 回答

你都用vue了,為何不用雙向綁定,v-model參考一下官方文檔吧,至于值的改變可以用watch,computed,也可以定義函數(shù)

夢一場 回答

我也遇到了相同的問題,你有解決嗎

安淺陌 回答

不明白你的意思,這兩個this不是一個this。onclick里的this應該是指事件對象,你原型鏈里的this是指fn的實例對象

尛憇藌 回答

原因

永遠無法執(zhí)行到的代碼就會這樣顯示

示例

const test = () => {
const a = 1;
return 2;
console.log(11);  //這一行也會出現(xiàn)你這種情況,因為他永遠無法執(zhí)行
}
孤島 回答

滾動的條件,父盒子的高度小于子盒子高度
可以排查一下這個

扯不斷 回答

onload事件 complete屬性可以認定圖片加載完畢

我以為 回答

說下自己的理解,供參考。假設題主了解網(wǎng)絡編程和計算機系統(tǒng)的一些基本概念。

簡單概括來說,事件驅(qū)動是實現(xiàn)并發(fā)處理的一種方式。

我們就以HTTP請求的處理過程為例,為簡化說明,僅考慮網(wǎng)絡IO,不考慮文件IO和數(shù)據(jù)庫等其他過程,也不考慮多核系統(tǒng)。
考慮采用如下最簡模型來處理HTTP請求:

main_loop:
  accept() 
  recv()  
  parse() 
  send() 
  close() 

來一個連接,讀取數(shù)據(jù)(請求),解析請求內(nèi)容,返回數(shù)據(jù)(應答)。
同一時間只為一個客戶端服務。在為A客戶端服務的過程中,B客戶端必須等待。

這種方式非常簡單直接,容易理解,但其無法滿足現(xiàn)實場景的需要——不支持并發(fā)。
現(xiàn)實中,客戶端的請求是并發(fā)的:即當一個客戶端的請求還在處理時,另外一個客戶端的請求就會達到,甚至多個客戶端的請求同時達到。
而且,recv 和 send等涉及網(wǎng)絡操作的API由于網(wǎng)絡數(shù)據(jù)發(fā)送與到達的不確定性,可能需要等待,CPU會空閑下來——但這種模型下即使CPU空閑了也無法處理其他客戶端的請求,浪費了CPU。

我們采用如下多線程模型,可以解決上述問題:

main_loop:
  accept() 
  start_thread(thread_loop)

thread_loop:    
    recv()  
    parse() 
    send() 
    close() 
    exit thread()

即每個客戶端在一個獨立的線程中處理。
當一個客戶端的線程執(zhí)行網(wǎng)絡操作需要等待時,會被操作系統(tǒng)調(diào)度出去,執(zhí)行其他需要干活兒的線程。
似乎完美了解決了我們的問題?
然而并沒有。
因為操作系統(tǒng)創(chuàng)建線程的開銷是比較大的,能夠支持的線程數(shù)量是有限的,通常是幾萬的級別,如果線程太多,就會有很多的CPU浪費在了線程的創(chuàng)建、銷毀、調(diào)度等管理操作上。

所以為了充分發(fā)揮CPU的能力,支持更多的并發(fā)數(shù)量,,在Linux上有另外一種處理并發(fā)的方式:
內(nèi)核提供了監(jiān)聽大量網(wǎng)絡連接(句柄)可讀、可寫等事件的機制和接口。
應用把需要監(jiān)聽對象以及關(guān)心的事件注冊給內(nèi)核,內(nèi)核在有事件達到時通知應用處理。
基于這種機制處理并發(fā)就是事件驅(qū)動。

事件驅(qū)動機制的基本模型是:

create_listen_socket()
register_event_for_listen_socket()
main_loop:
    wait_for_event()
    check_events:
         if listen_socket has event(new client coming) :
               accept()
               register_event_for_client_socket()
        if client_socket has event(new data coming):
               recv()                       
               parse()
               send()              

但這里有一個問題,有可能一個客戶端剛讀取了一部分數(shù)據(jù),就沒了,剩下的還在網(wǎng)絡中沒過來,需要繼續(xù)等待。
這就需要把當前的讀取內(nèi)容和請求處理狀態(tài)(也即上下文)保存起來,繼續(xù)處理其他客戶端的事件。
然后下次這個客戶端再有事件到來時再找回上下文繼續(xù)處理。
這其實需要應用自己做一些任務調(diào)度相關(guān)的上下文保存和切換工作。

當使用多線程處理并發(fā)時,操作系統(tǒng)幫我們做了這些工作,我們無需關(guān)心任務切換。
因為一個線程就只處理一個客戶端,反復調(diào)用recv把一個請求的數(shù)據(jù)讀完然后解析處理就可以了,也不用擔心沒數(shù)據(jù)到來時,recv阻塞了其他客戶端的處理。
所以多線程編寫并發(fā)代碼非常簡單直接。

如上,事件驅(qū)動機制是Linux上解決并發(fā)問題的一種高效編程模型。
應用反復探測事件,對接收到的事件進行逐個處理的過程就是事件循環(huán)。

那么同步和異步概念體現(xiàn)在哪里呢?

所謂同步就是我們執(zhí)行一個任務,一直等待任務執(zhí)行結(jié)束。
所謂異步就是我們執(zhí)行一個任務,不等待任務執(zhí)行結(jié)束,繼續(xù)去干其他活兒,任務結(jié)果后有個通知,或者干脆不關(guān)心任務的執(zhí)行結(jié)果。

在多線程模型中,每接收到一個新的客戶端就創(chuàng)建一個線程處理,這就是一種異步處理。
在事件驅(qū)動模型中,當沒有數(shù)據(jù)可讀時,就把這個客戶端繼續(xù)放到監(jiān)聽隊列中監(jiān)聽,也是一種異步。

如果我們考慮文件IO,把IO請求丟給另外一個或一組線程(線程池)處理,處理完后通知主線程,也是一種異步。

誮惜顏 回答

還是換種思路把. 推薦 https://github.com/shshaw/Spl... 這個庫, 可以把一段話分成單個的字符, 然后控制每個字符出現(xiàn)順序來完成動畫吧.

嘟尛嘴 回答

涉及到錢用分做單位比較方便

喜歡你 回答

https://www.cnblogs.com/taode... 這里找到辦法了。
sublime text 3 >首選項>package settings>emmet>settings user>

{
    // Custom snippets definitions, as per https://github.com/emmetio/emmet/blob/master/snippets.json
    "snippets": {
        "html": {
            "snippets": {
                "myfavicon": "<link rel=\"shortcut icon\" type=\"image/ico\" href=\"/favicon.ico\" />",
                "mycompat": "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n<!--[if lt IE 9]>\n<script src=\"https://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js\"></script>\n<script src=\"https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js\"></script>\n<![endif]--><!--[if IE 9]>\n<script src=\"https://cdn.bootcss.com/geopattern/1.2.3/js/base64.min.js\"></script>\n<script src=\"https://cdn.bootcss.com/geopattern/1.2.3/js/typedarray.min.js\"></script>\n<![endif]-->",
                "360compat": "<meta name=\"renderer\" content=\"webkit\">",
                "mykeywords": "<meta name=\"keywords\" content=\"your keywords\">",
                "mydesc": "<meta name=\"description\" content=\"your description\">",
                "myviewport": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
                "bootstrap4": "<link href=\"https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css\" rel=\"stylesheet\">\n<script src=\"https://cdn.bootcss.com/bootstrap/4.0.0/js/bootstrap.js\"></script>",
                "bootstrap3": "<link href=\"https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css\" rel=\"stylesheet\">\n<script src=\"https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.js\"></script>"


            },
            "abbreviations": {
                "mydoc": "html>(head>meta[charset='utf-8']+title{${1:文檔標題}}+mykeywords+mydesc+myviewport+mycompat)+body+jq3",
                "html:5": "!!!+mydoc[lang='zh-cn']",
                "jq3":"script[src='https://cdn.bootcss.com/jquery/3.1.0/jquery.min.js']"
            }
        }
    }
}
喵小咪 回答

其實就是運行不同的命令,傳入不同的參數(shù),使用不同的文件。
比如運行npm run dev
實際命令可配置為node build/build.js --env dev。
build.js中獲取到相應參數(shù)dev,取到相應的文件并執(zhí)行。

孤影 回答

touch事件,給你個簡單的事例吧,返回動畫什么的你自己完成吧,我是直接返回的。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0,user-scalable=no">
        <title></title>
        <style>
            *{
                margin: 0;
                padding: 0;    
            }
            html{
                width: 100%;
                height: 100%;
            }
            body{
                width: 100%;
                height: 100%;
                position: relative;
                /* touch-action: none; */

            }
            .box{
                width: 100px;
                height: 100px;
                position: absolute;
                bottom: 0;
                left: 50%;
                transform: translateX(-50%);
                background: #000;
            }
        </style>
    </head>
    <body >
        <div class="box" id="box"></div>
    </body>
    <script>
        touch('box');
        function touch(id){
            var obj = document.getElementById(id); 
            obj.addEventListener('touchstart', function(event) { 
            // 如果這個元素的位置內(nèi)只有一個手指的話 
            if (event.targetTouches.length == 1) { 
            var touch = event.targetTouches[0]; 
            // 把元素放在手指所在的位置 
            var disX=touch.pageX-obj.offsetLeft; 
            var disY=touch.pageY-obj.offsetTop;
            obj.addEventListener('touchmove',move);  
            function move(event){    
                //event.preventDefault();
                document.documentElement.style.touchAction = 'none';
                    var touch2=event.targetTouches[0];
                    //var l=touch2.pageX-disX;
                    var t=touch2.pageY-disY;
                    // if(l<0){
                    //     l=0;
                    // };
                    // if(l>document.documentElement.clientWidth-obj.offsetWidth){
                    //     l=document.documentElement.clientWidth-obj.offsetWidth
                    // };
                    if(t<0){
                        t=0;
                    };
                    if(t>document.documentElement.clientHeight-obj.offsetHeight){
                        t=document.documentElement.clientHeight-obj.offsetHeight;
                    };
                    //obj.style.left=l+'px';
                    obj.style.top=t+'px';
         
            };
              obj.addEventListener('touchend',chend);
              function chend(event){
                if(obj.offsetTop<150){
                    alert('成功');
                    obj.style.top='auto';
                    obj.style.bottom='0px';
                }else{
                    obj.style.top='auto';
                    obj.style.bottom='0px';
                };
                document.documentElement.style.touchAction = 'auto';
                obj.removeEventListener('touchmove',move);
                obj.removeEventListener('touchend',chend);
              };
        }; 
        }, false);
    };
    </script>
</html>
悶騷型 回答

一般都是有個狀態(tài),改變的數(shù)據(jù),沒有dom操作,根據(jù)這個索引的關(guān)注狀態(tài)進行改變,data-index="{{item.index}}",這個是索引值,你數(shù)據(jù)里面的,可能還有個是否關(guān)注,例如:<view>{{item.concern==0?"關(guān)注":"已關(guān)注"}}</view>,通過獲取出來數(shù)據(jù)是否關(guān)注,0,1判斷。點擊進行改變當前索引值的數(shù)據(jù)的concern就可以了

陪妳哭 回答

vue.min.js是VUE框架打包壓縮好的文件,一般構(gòu)建工程自己引入vue-router包再用構(gòu)建工具如webpack打包

玩控 回答

問題解決了,不過其實我也不太清楚是怎樣解決了,反正我是重新啟動了一下項目就OK了,可能是因為網(wǎng)絡的問題吧。

舊言 回答

如果你是移動端的話,應該是fixed定位的問題。通過監(jiān)控獲取焦點改變定位absolute,失去焦點的時候再fixed回來就可以了。桌面端咱沒遇到過這個問題。