質問の種類を取得するためのWebフロントエンドのインタビューしばしば出会い

相対および絶対値1.positionは、誰に対して配置されていますか?

§絶対:絶対位置決め要素を生成し、最近レベルの親要素の相対位置決めする静的位置決めはありません。

§固定ブラウザウィンドウまたはフレームの位置に通常の相対要素の絶対配置を、生成する(古いIEがサポートされていません)。

その通常の位置位置決め​​ストリームに対して相対的に位置決め§相対形成要素。

§静的デフォルト。いいえ位置決め要素は、通常のストリームに表示されません

§粘着性の粘稠容器得ドキュメントフロー計算の通常の位置に、要素を配置に従って生成

クロスドメインの問題を解決する方法2

JSONP:

原理は次のとおりです。動的に挿入スクリプトタグ、scriptタグを介したJSファイルの導入、このJSファイルが正常にロードされ、我々は、URLパラメータで指定された関数を実行し、我々は、パラメータとしてJSONデータが必要になります。

、クロスドメイン要求を達成するために相同制限ポリシーのみXmlHttpRequestの現在のリソース要求元(ドメイン、プロトコル、ポート)ので、要求がクロスドメインスクリプトタグによって達成されてもよいし、サーバーとJSONコールバック関数にデータを出力しますクロスドメインデータ要求を解決するように。

良好な適合性、使いやすい、ブラウザとサーバーのサポート双方向通信の利点。欠点は、唯一のサポートが要求をGETということです。

JSONP:JSON +パディング(内側の塗りつぶし)は、名前が示す、ボックスJSONを満たすことです

<スクリプト>

functioncreateJs(SURL){

VAR oScript =のdocument.createElement( 'スクリプト');

oScript.type = 'テキスト/ javascriptの';

oScript.src = SURL。

document.getElementsByTagName( '頭')[0] .appendChild(oScript)。

}

createJs( 'jsonp.js');

ボックス({

「名前」:「試験」

});

functionbox(JSON){

警告(json.name)。

}

</ SCRIPT>

HEARTS:

主にアクセス制御 - 許可 - 原点を設定することにより、CORSのサーバー側のサポートは、実施しました。ブラウザがあること、適切な設定を検出した場合、あなたは、Ajaxへのクロスドメインアクセスを許可することができます。

document.domainをを変更することで、サブドメインに遭遇

document.domainをサブドメインとメインドメインは、同一のメインドメインの前提条件に設定されている2つのドメイン名は、そうしないと、クロスドメインdocument.domainを使用することはできません、同じベースドメイン名と、ポートが一致している必要があります使用されるプロトコルに属している必要があります!

同じdocument.domainをを使用して、プライマリドメイン

Window.nameクロスドメインを使用します

ウィンドウオブジェクトが機能を持っているname属性を、持っている:すべてのページがwindow.nameを共有しているロードするための窓、ライフサイクルの窓(ウィンドウ)で、あること、各ページにはw​​indow.nameにあり読み取りと書き込みの権限は、window.nameは、すべてのページをロードするウィンドウの上に永続的です

使用HTML5ドメイン間でデータを転送するために新たに導入されたのwindow.postMessageの方法で、

サーバー上のプロキシページや他のクロスドメインモードを設定するフラッシュがあります。この方法は、ほとんどすべてのブラウザ本当に優れているクロスドメイン方式との互換性も、window.name複雑な思いません。

WebPACKの上のあなたの意見についての話3

WebPACKのモジュールは、あなたのWebPACKモジュールの依存関係を管理するために使用できることをパッケージ化ツールであり、静的なファイル解明出力モジュールが必要とされています。これはよく管理し、パッケージ化されたWeb HTMLの使用で開発されたJavaScript、CSS、様々な静的ファイル(画像、フォントなど)、開発プロセスをより効率的にします。異なるタイプのリソースについては、対応するモジュールローダをWebPACKの。WebPACKのパッカーモジュールは、モジュール間の依存関係、組み合わせ最適化と静的リソースの最後の世代を分析します。

二つの特徴のWebPACKの:

1.code分割(自動化することができます)

2.loaderは、タンデム動作のためのさまざまな静的ファイルの種類、およびサポートを扱うことができます

WebPACKのスクリプトが低下書き込みにcommonJS形成されていますが、AMD / CMDのためのサポートも非常に包括的な、アクセスレガシーコードの移行プロジェクトです。

WebPACKのはrequireJsとbrowserify機能を持っていますが、その新機能の多くはまだあります。

1. CommonJS、AMD、文法ES6を両立させ

2. JS、CSS、画像や他のリソースファイルのサポートパッケージ

3.タンデムローダモジュールとプラグイン例えば、より多くの柔軟性とスケーラビリティを許容機構、CoffeeScriptのためのサポート、ES6の

4.別の設定ファイルwebpack.config.jsあり

コードは、初期化時間を短縮する、異なるチャンク、負荷需要に切断することができます

4.XSSとCSRF何か違いはありますか?

XSSは、情報へのアクセスで、ユーザーが事前にコードページや他のデータパケットを知っている必要はありません。CSRFはなく、ユーザーの指定したアクションを完了すると、ユーザーは他のページとのデータパケットのためのコードを知っている必要があります。

CSRF攻撃を完了するためには、被害者は、シーケンス内の2つのステップを完了する必要があります。

ログインは、サイトAを信頼して、ローカルにクッキーを生成します。

Aの場合には、外の危険なウェブサイトB.へのアクセスではありません

CSRF防衛

多くの方法が好きCSRFが、一般的な考え方の§サービス側では、クライアントページの擬似乱数を増やしていること、同じです。

§の方法によりコード

デバッグに簡単にサポートSourceUrlsとSourceMaps、

。強力なプラグインインターフェイスでは、主に内部プラグイン、より柔軟な使用

.webpack非同期IOを使用して、マルチレベルのキャッシュを持っています。これ作るには、より迅速にWebPACKのインクリメンタルコンパイルにスピードアップ

パフォーマンスの最適化についての話

コードレベル:、高度なセレクタの使用を避ける、CSSの表現を使用して、ワイルドカードセレクターを避けてください。

キャッシュの使用:キャッシュアヤックス、使用CDNなど、DNSルックアップを減らす、サーバ構成のEtag、Expiresヘッダを追加し、キャッシュのために外部のjsとcssファイルを使用します

外のスタイルとスクリプトをマージする画像リソース、ウィザードを使用してCSSの画像、初期画面最初の需要の負荷、遅延ロードの静的リソース:リクエストの数。

要求された帯域幅:圧縮ファイル、オープンGZIP、

コード・レベルの最適化

利用ハッシュ・テーブル・ルックアップを最適化するために、

グローバル変数の少ない使用

代わりに、最適化性能JavaScriptに、innerHTMLのDOMで動作するオペレーションのDOMの数を減少させます

setTimeoutでページ応答が失われないようにします

キャッシュDOMノード検索を結果

CSSの表現を使用しないでください

グローバルクエリを避けてください

で使用しないでください(自分のスコープを作成すると、スコープチェーンの長さを増加させます)

複数の変数宣言をマージ

空のSrcのような写真やiFrameを避けてください。Srcの空のリロード現在のページ、スピードと効率に影響を与えます

スタイルは、HTMLタグの属性の書き込みを書いて避けるようにしてください

移動端のパフォーマンスの最適化

CSS3アニメーション、オープンハードウェアアクセラレーションを使用してみてください。

代わりに、クリックイベントのタッチイベントの適切な使用。

勾配CSS3の影を使用しないでください。

あなたは、変換することができます:translateZ(0)ハードウェアアクセラレーションをオンにします。

フロートを乱用しないでください。計算集約的なレンダリング時にフロートの使用を最小限に抑えます

ウェブフォントは乱用しないでください。ウェブフォントは、ダウンロードパース、現在のページを再描画、使用を最小限にする必要があります。

requestAnimationFrameの合理的なアニメーションの使用の代わりのsetTimeout

CSSプロパティ(CSS3トランジション、CSS3 3D変換、不透明度、キャンバス、WebGLの、ビデオ)は、GPUレンダリング、合理的な使用をトリガします。携帯電話の過度の使用は、過度の電力消費量が増加を引き起こす可能性があります

モバイルエンドPC側でも適用されます

6.js継承と長所と短所

継承の欠点にプロトタイプチェーン

まず、リテラルの書き換えプロトタイプは、スーパータイプにパラメータを渡すことはできません参照型とサブタイプを使用して関係、プロトタイプを混乱させる。

借入コンストラクタ(式継承クラス)

ちょうど今、これらの問題の両方を解決しながら、コンストラクタを借りて、ないプロトタイプ、質問の再利用はありません。私たちは+プロトタイプチェーンモデルのコンストラクタを借りる必要があるので、このモードは、継承組成と呼ばれています

複合遺産

継承は、その背後にある考え方は、プロトタイプ実装の継承チェーンのプロパティとメソッドのプロトタイプであり、借りコンストラクタによって継承されたインスタンスの属性を達成するために、より多くのモジュラー一般的に使用される継承されたメソッドです。したがって、プロトタイプのメソッドを多重化することによって定義された機能を達成するために、各インスタンスが独自の特性を有することを確実にするだけでなく。

クッキーの欠点約7話してください

クッキーは、サーバ・ストレージの負担を共有する、便利を提供するために、クライアントのデータを永続化するために、多くの制限がまだありますが。

最初:20クッキーの最大それぞれ特定のドメインを生成します

1.IE6 20までまたはそれ以前のクッキー

最終版2.IE7した後、50クッキーを持つことができます。

50クッキーの3.Firefoxの最大

4.chromeとSafariは、ハード制限はありません。

IEとOperaはFirefoxがランダムにクッキーをクリーンアップします、最低使用クッキーをきれいにします。

クッキーは、より多くの4095バイトより一般的に、互換性のために約4096バイトの最大値ではありません。

IEは、永続的なユーザーデータは、保存されたUserDataを呼ばれ、開始IE5.0からサポートすることができます提供します。128Kに、各ドメイン名で1Mまでの各データをバックアップします。クリーンでない場合は、キャッシュ内の永続データ、キャッシュは、それは常に存在します。

長所:高いスケーラビリティと可用性

1.良いプログラミングは、図中のセッションクッキーに格納されたオブジェクトのサイズを制御します。

2.暗号化とセキュアな伝送技術(SSL)は、亀裂にクッキーの可能性を低減します。

盗まれた場合でも、3店舗だけでなく、クッキー内の機密データは、重大な損失を持っていません。

4.コントロールクッキーの有効期間は、それは必ずしも有効ではないこと。泥棒は期限切れのクッキーを取得する可能性があります。

短所:

1.`Cookie`数および長さの制限。各ドメインはそれ以外の場合は切り捨てられます、各クッキーは4キロバイトを超えることはできません、20クッキーの最大を持つことができます。

2.セキュリティ上の問題。クッキーは、人を傍受された場合、その人は、すべての情報セッションを取得することができます。彼らはクッキーを転送している限り、彼は自分の目標を達成することができますようインターセプタは、クッキーの意味を知っている必要はありませんので、暗号化も役に立たない場合でも。

3.いくつかの状態は、クライアントに保存することができません。例えば、重複送信フォームを防ぐために、我々は、サーバー側のカウンターを保存する必要があります。私たちは、このカウンタは、クライアントに格納されて置く場合、それはどんな効果を達成しないでしょう。

ブラウザのローカルストレージ

ブラウザのそれ以降のバージョンでは、jsはのsessionStorageとglobalStorageを提供します。HTML5のlocalStorage代わりglobalStorageに提供します。

sessionStorageとのlocalStorage:HTML5のWebストレージには、二つの記憶方法を含みます。

sessionStorageセッションにアクセスするために、同じページ内のこれらのデータのデータ・セッション(セッション)のために、また破壊されるセッションが終了データの後のローカルストレージ。だから、のsessionStorageない永続的なローカルストレージ、唯一のセッションレベルのストレージ。

永続的なローカルストレージのためのlocalStorageは、率先しない限り、データを削除するか、データが決してアウト日のです。

差分8.webストレージとクッキー

ウェブストレージのコンセプトと同様のクッキーは、それがより大きなストレージ容量のために設計されていることを除いて。クッキーのサイズが加算クッキーで、制限され、クッキーが過去に送信されますときに新しいページを要求するたびに、その事実帯域幅の浪費ということも、クロスドメインの呼び出し、スコープを指定する必要はありません。

また、ウェブストレージは、SetItem関数、のgetItem、removeItem、明確な方法を持っているクッキーの必要性とは異なり、フロントエンドの開発者自身のパッケージますsetcookie、getCookie。

しかし、クッキーは必須ではない:クッキーの役割は、仕様が存在するHTTPの一部としてサーバーと対話することで、ウェブストレージ単に地元の「ストア」に生データ

サポートブラウザに加えて、IE7をサポートし、以下、他の標準的なブラウザでは完全に(つまり、FFとWebサーバの内部を実行する必要性を)サポートし、それは、そのような事実のuserDataでIE7、IE6としてそのIE常に良いものを、言及する価値があるしませんJavascriptをローカルストレージソリューションです。これは、すべてのブラウザのサポートWebストレージに簡単なコードのパッケージで統一することができます。

sessionStorageのlocalStorageと同じ操作方法、例えばSetItem関数、のgetItemを有し、removeItem等

9. クッキーとセッションの違い:

1は、Cookieデータは、顧客のブラウザ、サーバー上のセッションデータに保存されています。

2は、クッキーは、人々は、ローカルに保存され、COOKIE COOKIEカンニング分析することができ、非常に安全ではありません

アカウントにセキュリティを取ることに使用されるセッションでなければなりません。

図3に示すように、セッションは、一定期間内にサーバに保存されます。増加にアクセスする場合は、より多くのサーバーのパフォーマンスを取るだろう

サーバーのパフォーマンスを軽減考慮すると、あなたはクッキーを使用する必要があります。

図4に示すように、格納されたデータが4Kを超えることができない単一のクッキーは、多くのブラウザは、クッキーを保存した20の部位の最大値に制限されています。

5、その個人的な提言:

ログイン情報やその他の重要な情報は、セッションとして保存されています

あなたが残しておきたい場合は、COOKIEに配置することができます追加情報

ディスプレイ:なしと可視性:違いを隠されましたか?

表示:対応する要素を非表示にするには、どれもがもはや空間での文書のレイアウトでそれに割り当てられている彼は決して存在しないだろうというとき、それは、要素の側面をクローズしません。

可視性:隠された皮革対応する要素が、それでも、文書レイアウトの元の空間を保持します。

10.CSSリンクと@import違いはありますか?

(1)HTMLタグのリンク部、およびCSSの@importが提供されています。

(2)ページがロードされ、リンクにもロードされ、CSSの@importは参照がそのCSSファイルがロードされるまで待機し、その後、完成読み込みます引用しました。

(3)輸入IE5だけ、より多くのHTMLリンクタグ、互換性の問題を識別するために、

右のパターン重い@import実施形態上記(4)リンクの重み。

類似点と絶対とフロート属性間の違い:位置

§共通:インライン要素は、文書の流れから要素を可能にし、フロート絶対プロパティに設定され、その幅と高さを設定することができます。

§異なる点:フロート位置、ドキュメントフローの絶対オーバーライド他の要素を占有します。

おすすめ

転載: www.cnblogs.com/xsd1/p/11898250.html