WEB #3 WEB UI

15078 ワード

1.ウィンドウオブジェクト

  • window(グローバルオブジェクト)に属する方法としては、警告ウィンドウを再生するalertsetTimeoutなどがある.
  • window.setTimeout()
    setTimeout() <!--window는 전역객체라서 생략 가능하다.-->

    1.1. settimeoutの利用(遅延時使用)

  • 因子で関数を受け入れます.(JavaScriptは、パラメータとして関数を受信または返す特徴があります.)
  • Callback関数:すぐに実行されないか、後で必要なときに実行または実行されない可能性があります.
  • function run() {
        setTimeout(function() {
            var msg = "hello codesquad";
            console.log(msg);  //이 메시지는 즉시 실행되지 않는다.
        }, 1000); //1초뒤에 실행
    }
    
    run();
  • settimeoutの実行は非同期であり、実行するには同期された他の実行が完了する必要があります.
  • settimeoutの関数(コールバック関数)はrun関数の実行が終了した後に実行される.(正確には、スタックにスタックされた関数の実行が完了すると実行される)
  • function run() {
        console.log("start");
        setTimeout(function() {
            var msg = "hello codesquad";
            console.log(msg);  //이 메시지는 즉시 실행되지 않는다.
        }, 1000);
        console.log("end");
    }
    
    run();
    //start
    //end
    //1초뒤 hello codesquad

    setIntervalとsetTimeOut

  • setIntervalは、いくつかの操作を繰り返し実行するために使用されます.
    ex)
  • ライブラリ形式のビューを作成し、指定した時間間隔で画像を置き換えると、
  • になります.
  • バナー広告を一定時間間隔で交換すると
  • が表示される.
  • 計画期間内にサーバとの通信を継続する必要がある
  • settimeOut他の動作の終了後に特定の動作を処理するためのもの

    2.DOMとquerySelector


    2.1. DOM (Document Object Model)

  • ブラウザでは、HTMLコードをツリー構造オブジェクト形式のモデル(DOMと呼ぶ)として格納する
    ◆格納されている情報:DOM Tree
    (HTML要素はツリーとして格納されます.)
  • DOMツリーをブラウズおよび操作するためのJavaScriptブラウズアルゴリズムを実装することは非常に困難であるため、ブラウザは複数のDOM API(方法)を提供する.
  • getElementByID()


    DOM API は、ユーザが
  • ID情報を介して要素をナビゲートおよび操作することを可能にする
    document.getElementByID("nav-cart-count);
    document.getElementByID("nav-cart-count).innerText="있어";
    document.getElementByID("nav-cart-count).style.display="none";

    2.2. Element.querySelector()

  • DOMの検索に特に役立ちます.
  • cssセレクタ構文を使用して
  • にアクセス
    document.querySelector("div");
    document.querySelector("#nav-line-2"); //id 값 찾을때는 #
    document.querySelector(".nav-line-2"); //class 값 찾을때는 .
    document.querySelector(".nav-line-2 > .nav-arrow"); // 자식요소 찾을 때
    

    querySelectorAll()


    divが
  • ()に入ると、divの要素はすべて検索されます.
  • 配列ではないが、ノードリストの結果はリスト形式の値であり、
  • である.
  • forドアのようなものを回して確認することができます.
  • removeChild(child):
  • を削除
  • 置換Child:置換
  • appendChild(child):ノードの最後のサブノードとして指定された別名を追加します.
  • document.createElement(tagname):tagname要素ノードを追加します.
  • document.createTextNode(データ):テキストノードを追加します.
  • 3. Browser Event, Event Object, Event Handler


    3.1. Event

  • ブラウザには、マウスのスクロール、キーボード入力など、多くのイベント
  • があります.
    各HTMLページでイベント(主にキーボードやマウス関連)が発生したときに特定の動作(何か)を実行するには、相手のページを見つけて実行を登録するだけです.

    3.2. Event Handler(Event Listner)

  • アクティビティを登録する場合:addEventListner関数を使用します.
  • var el = document.querySelector(".outside");
    el.addEventListener("click", function(){ 
    //이 함수는 이벤트가 발생할 때 실행된다. ⇒ Event Handler(Event Listner)
    }, false);

    3.3. Event Object

  • ブラウザは、イベントリスナーを呼び出すと、ユーザーからのイベント情報を含むイベントオブジェクトを生成し、リスナー関数に渡します.
    ◇イベントリスナーでは、イベントオブジェクトによる他の操作
  • を行うことができる.
    var el = document.querySelector(".outside");
    
    el.addEventListener("click", function(evt){ 
      var target = evt.target; //매개변수 evt를 통해서 target에 접근하고 정보를 가져올 수 있다. 
      console.log(target.className, target.nodeName);
      console.log(target.innerText);
      });

    4.Ajax通信


    4.1. Ajax(XMLHTTPRequest通信)

  • から、ブラウザをリフレッシュすることなく、サーバからデータを受信したいと考えています.
  • 非同期(画面の他の部分に影響を及ぼさない)サーバからデータ
  • をインポートする.
  • EX)Nav Barのラベルをクリックするたびに、内容が変化し、クリックしていないラベルの内容が初期ロードポイントでロードされると、初期ロード速度に影響し、動的に必要なときにコンテンツを受信して表現すれば、より良い状況でAjax技術が使用される.
    (更新することなくWebページ全体からデータの一部のみを受信するように更新)
  • .
  • Ajax通信ではXML、Plain Text、JSONなど多様な形式のデータを交換できるが、通常は便利なJSON形式のデータ交換
  • を用いる.

    JSON(JavaScript Object Notation)

  • サーバとクライアントとの間でデータ交換を行う場合、JSONフォーマットを使用して相互間の標準データフォーマットを決定します.
  • AJAXの典型的なフォーマット
  • JavaScriptオブジェクトと同様の形状は
  • です.
    //JSON의 형태 : 일반적으로 키-값(이름:값) 쌍의 패턴으로 표현된다. 
     {
        "이름": "홍길동",
        "나이": 25,
        "성별": "여",
        "주소": "서울특별시 양천구 목동",
        "특기": ["농구", "도술"],
        "가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},
        "회사": "경기 수원시 팔달구 우만동"
     }

    4.2. AJAX運転コード

    function ajax(data) {
     var oReq = new XMLHttpRequest();
     oReq.addEventListener("load", function() {
       console.log(this.responseText);
     });    
     oReq.open("GET", "http://www.example.org/getData?data=data");//parameter를 붙여서 보낼수있음. 
     oReq.send();
    }
  • XMLHttpRequestオブジェクトを作成し、メソッドを開いてリクエストを準備し、sendメソッドでサーバに送信します.
  • リクエスト処理が完了すると(サーバが応答する場合)、loadイベントが発生し、コールバック関数が実行されます.
  • コールバック関数の実行時(ロード開始時)にAjax関数が返され、呼び出しスタックから消えました.(settimeout関数のコールバック関数と同様の「非同期」論理)
  • CORS: Cross-Origin Resorce Sharing

  • の1つのソースで実行されるWebアプリケーションが、別のソースのリソースにアクセスできるメカニズム.
  • XMLHttpRequestでは、使用中のWebアプリケーションが自分のソースと同じリソースをロードすることを許可し、他のソースからのリソースをロードするには、CORSヘッダを含む応答を返す必要があります.
    注意:https://huns.me/posts/2014-04-20-ajax-cors-overview
  • 5.JavaScriptブラウザのデバッグ


    5.1. デバッグコントロール

  • Pause,Continue:最初のボタンは通常Pauseボタン状態であり、布点が捉えられた場合はContinueボタンである.他のブレークポイントが見つかるまで、コード
  • を実行します.
  • Step over next関数call:コード行をスキップし、現在の実行行に関数実行コードがある場合、関数は実行され、関数のコードには入りません.スレッドの関数のみを実行します.
  • Step to next function call:ジャンプとは異なり、現在の実行ラインのコードに関数がある場合は、関数の最初のコードに入り、行ごとにコードを実行できます.
  • Step out out current function:入力した関数を最後まで実行し、その関数を実行する関数を終了して返します.
  • アクティブ/アクティブブレークポイント:ブレークポイントを閉じるか開くことができます.
  • Pause on exception:javascript異常が発生した場合、その位置でブレークポイントをつかみます.