Ajax
15389 ワード
Ajaxを使用して1ページのアプリケーションを実装できます fetch APIを介してWebサーバ「hi」に向かいます.htmlファイルを要求します. サーバからの応答が完了すると、then()の関数が実行されます.(非同期) の後にコールバック関数が与えられる場合、fetch APIは応答オブジェクトを最初のパラメータの値とする.
ハッシュ(#)ブックマーク機能を使用してurlを変更し、画面を移動する(ページ再ロードx)
ページにidが存在しない場合はurlのみ変更
単一ページアプリケーションでのページ移動
polyfillをWebサーバにダウンロードし、ページにを含めると、APIをサポートしていないブラウザはpolyfillで置き換えられ、最新のブラウザは独自のAPIを使用します.
XML JSON PJAX : pushState + Ajax Progressive Web Apps : SPA + offline
// Ajax 코드 예시
<article> </article>
<input type="button" value="fetch" onclick="
fetch('hi.html').then(function(response){
response.text().then(function(text){
if(response.status == '404'){
alert('Not found');
}
document.querySelector('article').innerHTML = text;
})
})
">
ブラウザはHashbang(#!)
ハッシュ(#)ブックマーク機能を使用してurlを変更し、画面を移動する(ページ再ロードx)
ページにidが存在しない場合はurlのみ変更
単一ページアプリケーションでのページ移動
// 해쉬뱅 사용 예시
<a href="#!example.html" onclick="fetchPage('example.html')">Example</a>
<script>
function fetchPage(name) {
fetch(name).then(...);
}
// 사용자가 url을 직접 입력하여 들어온 경우 onclick이 발생하지 않으므로 따로 처리
if(location.hash) { // url에 해쉬가 있다면, location.hash : 현재 url의 해쉬
fetchPage(subStr(1,location.hash)); // !를 제거해서 fetchPage를 호출
} else {
fetchPage('welcome.html');
}
</script>
Ajaxで検索エンジンを最適化できないなどのデメリットがあり、最近ではPjaxを使っていますデータと論理を分離する
// before
<body>
...
<ul id="nav">
<li><a href="#!html" onclick="fetchPage('html')">html</a></li>
<li><a href="#!css" onclick="fetchPage('css')">css</a></li>
<li><a href="#!javascript" onclick="fetchPage('javascript')">javascript</a></li>
</ul>
</body>
// after 1
// list 파일 : li 태그들이 존재
<body>
<ul id="nav">
</ul>
<script>
fetch('list').then(function(response){
response.text().then(function(text){
document.querySelector('#nav').innerHTML = text;
})
});
</script>
</body>
// after 2
// list 파일 : "html, css, javascript"
<script>
fetch('list').then(function(response){
response.text().then(function(text){
var items = text.split(',');
var i = 0;
var tags = '';
while(i<items.length){
var item = items[i];
item = item.trim();
var tag = '<li><a href="#!'+item+'" onclick="fetchPage(\''+item+'\')">'+item+'</a></li>';
tags = tags + tag;
i = i + 1;
}
document.querySelector('#nav').innerHTML = tags;
})
});
</script>
polyfill
polyfillをWebサーバにダウンロードし、ページに
키워드
Reference
この問題について(Ajax), 我々は、より多くの情報をここで見つけました https://velog.io/@csct3456/Ajaxテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol