ajax の正式名は、asynchronous javascript and XML、つまり非同期 js と XML です。これは部分的なリフレッシュの非同期操作です。この記事ではajaxの特徴と文字化けの問題について紹介していますので、興味のある方はぜひ参考にしてみてください。
ajax 自体がシングルスレッドで同期であることは誰もが知っていますが、なぜシングルスレッドが非同期になるのかは、ほとんどの人が知りません (あまり公式ではありませんが、理解しやすいです)。 ) :
説明する前に、線形データ構造について説明します。線分には先頭と末尾があると考えられます。線分の先頭には前部と後部がありません。中央の各要素にはその前後に 2 つの要素があることを認識し、同時に 2 つの要素が通知します。 。また、要素が 1 つもなければ機能しません。
コールバック関数は関数Aをパラメータとして関数Bに渡し、関数Bは関数Aを実行します。コールバック関数の最も一般的な用途は、ajax でデータをリクエストするときに使用する success() 関数と error() 関数、およびコールバック関数を使用する setInterval の最初のパラメータです。コールバック関数、コールバック関数、コールバックの文字通りの意味は、方向転換して戻って、再びその道を歩くことです。つまり、コールバック関数 success() または error がトリガーされると、ajax は向きを変えて再び歩き出します。同時に、ajax も非同期になります。これに似たものとして、es6 の Promise (非同期同期操作) があります。
ブラウザのプロセスがマルチプロセスである理由は、XXXと呼ばれる理由と同じです〜
2番目の質問は、全能のフロントエンドがバックグラウンドデータを取得するためにajaxに遭遇するとき、それは何ですか?コードが文字化けしているはずです。誰もが非常に混乱しています。
- インターネットの速度に問題があるのかもしれません。インターネットが遅すぎます。
- エンコード形式が統一されていない可能性があります。バックエンドの兄弟があなたを騙したのでしょう (笑)
ajax のネイティブ コードを覚えていただけますか? コードを見てみましょう:
//1.创建xmlhttpRequest对象 var xhr; try{ xhr = new XMLHttpRequest(); console.log(5555) } catch(e){ //ie浏览器低版本兼容 xhr = new ActiveXobject("Microsoft.XMLHTTP"); } finally{ console.log(1111) } // try{} catch{} finally{}在这里是处理异常的方法,用if{}else{}也ok //if(window.XMLHttpRequest){ // xhr = new XMLHttpRequest(); // }else{ //ie浏览器低版本的兼容 // xhr = new ActiveXobject("Microsoft.XMLHTTP") //} //2.建立异步连接 xhr.open("get","url/+string",true/false);//true是异步,false是同步 //xhr.open("post","url",true/false) //3.发送异步请求 xhr.send(null);//get xhr.send(string);//post //4.获取返回数据 xhr.onreadystatechange = function (){ if((xhr.readystate)==4&&(xhr.status==200)){ var data = xhr.responseText; var data = JSON.parse(data); show(data); } } function show(data){ document.getElementById("p1").innerHTML = data; }
関連する推奨事項:
非同期リフレッシュを実装するための手書きの Ajax メソッド例
Ajax がデータを返す前の読み込み待機効果の実装方法について
以上がAjax の機能とコード化けの問題の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。