私がWebプログラミングを学び始めたとき、私は最高のフレームワークであるJQueryに出会いました。 JavaScriptが95で行ったことを1行で実行できるため、これまでは通常のプログラミングを想像することは不可能でした。
今日、JavaScriptは大きく変わりました。 多くの機能が追加され、コードの量が減り、プログラミングがより便利になりました。 しかし、これらの更新を行っても、彼はJQueryから最も単純な関数を再現することはできず、このフレームワークを放棄することに決めたとき、彼はこのために多少の困難を感じます。
そのため、この記事では、純粋なJavaScriptでのjQueryの一部の関数の実装について説明します。
$(ドキュメント).ready(関数); または$(関数);
知らない人のために、これはDOMツリー準備機能です。 すなわち この関数は、ページのDOMが完全にロードされると起動します。
IE9以降では、この関数はDOMContentLoaded
でハングしたDOMContentLoaded
イベントを使用して置き換えることができdocument
。
例:
document.addEventListener('DOMContentLoaded', function() {
IE4 +以降のサポートが必要な場合は、古いメソッドを使用できます。 document
でハングアップしたreadystatechange
イベントを使用して、 readyState
を確認します。
例:
document.onreadystatechange = function(){ if(document.readyState === 'complete'){
jQueryソースを見ると、次の関数が表示されます。
例:
var ready = (function() { var readyList, DOMContentLoaded, class2type = {}; class2type["[object Boolean]"] = "boolean"; class2type["[object Number]"] = "number"; class2type["[object String]"] = "string"; class2type["[object Function]"] = "function"; class2type["[object Array]"] = "array"; class2type["[object Date]"] = "date"; class2type["[object RegExp]"] = "regexp"; class2type["[object Object]"] = "object"; var ReadyObj = {
関数の起動は次のとおりです。
ready(function() {
$ .ajax(オブジェクト);
知らない人のために、この関数は非同期HTTP(Ajax)リクエストを実行します。
ありふれたことですが、Jquery.ajax()の代替はXMLHttpRequest
使用について少し:
まず、送信用のクロスブラウザ関数を作成する必要があります。 ブラウザによっては、送信機能が異なる場合があります。 この方法で作成されます:
function getXmlHttp(){ var xmlhttp; try { xmlhttp = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest !== 'undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; }
そして、これはエラー処理を伴う標準的なPOSTリクエストの例です:
var xmlhttp = getXmlHttp();
jQuery AJAX関数は、同じテクノロジーを使用して作成されます。
グローバル関数$(...);
誰も知らない場合、この関数はグローバルjQueryオブジェクトを作成します。
ここでは、少なくとも1週間はかかるため、この関数のすべての機能を説明するのではなく、JQueryの例に従って同様のことをどのように作成するかを単純に記述します。
最初に、引数(セレクターとコンテキスト)を含むLibrary
などの通常の関数を作成します。
var Library = function (selector, context) {};
次に、一般的な関数を書きます。 jQueryでは、関数に分類される値は条件を使用してソートされ、結果が表示されます
var init = function (selector, context) {
これで、メインからこの関数の起動を追加できます
var Library = function (selector, context) {
できました。 これで、 Library(...);
関数を介して要素の配列を取得できますLibrary(...);
そして、そのような構築を通して追加の機能を作成しますLibrary.prototype.myFunction = function () {...};
今のところすべてです。 時間が経つにつれて、jQuery関数に関する記事をより具体的に公開します。