Ajax記述
4562 ワード
テーマ1:ajaxとは何ですか.何の役に立つの?
AJAXは、Webページ全体を再ロードすることなく、一部のWebページを更新できる技術です.AJAXは、バックグラウンドでサーバと少量のデータ交換を行うことで、Webページの非同期更新を実現します.これは、ページ全体を再ロードすることなく、ページの一部を更新できることを意味する.
题目2:前后に连调を开発してどれらの事に注意しなければなりませんか?バックエンドインタフェースが完了する前にどのようにmockデータをしますか?
注意事項:1.約定データ:データ型及びサイズ制限2を決定する.約束インタフェース:インタフェースの名前、要求の方法を決定します.データはどうやって?自分でサーバフレームワークを使用してシミュレーションサーバ環境を構築したり、mock-serverを使用してシミュレーションしたりすることができます.
テーマ3:ボタンをクリックしてajaxを使ってデータを取得して、どのようにデータが来る前に重複クリックを防止しますか?
タイトル4:ajax関数をカプセル化し、次のように呼び出すことができます.バックエンドはローカルでserver-mockを使用してmockデータを使用します
タイトル5:より多くの機能を搭載
htmlファイル
AJAXは、Webページ全体を再ロードすることなく、一部のWebページを更新できる技術です.AJAXは、バックグラウンドでサーバと少量のデータ交換を行うことで、Webページの非同期更新を実現します.これは、ページ全体を再ロードすることなく、ページの一部を更新できることを意味する.
题目2:前后に连调を开発してどれらの事に注意しなければなりませんか?バックエンドインタフェースが完了する前にどのようにmockデータをしますか?
注意事項:1.約定データ:データ型及びサイズ制限2を決定する.約束インタフェース:インタフェースの名前、要求の方法を決定します.データはどうやって?自分でサーバフレームワークを使用してシミュレーションサーバ環境を構築したり、mock-serverを使用してシミュレーションしたりすることができます.
テーマ3:ボタンをクリックしてajaxを使ってデータを取得して、どのようにデータが来る前に重複クリックを防止しますか?
var dataArrive = true;
btn.addEventListener("click",function(){
if(!dataArrive){
return;
}
var xhr = new XMLHttpRequest();
xhr.open();
xhr.send();
var dataArrive = false;
if (xhr.readyState === 4) {
var dataArrive = true;
}
});
タイトル4:ajax関数をカプセル化し、次のように呼び出すことができます.バックエンドはローカルでserver-mockを使用してmockデータを使用します
function ajax(opt){
var xhr = new XMLHttpRequest;
xhr.onreadystatechange = function(){
if (xhr.readyState === 4) {
if (xhr.status === 200||xhr.status === 304) {
var results = xhr.responseText;
opt.success(results);
}else{
opt.error()
}
}
}
var query = '?';
for(key in opt.data){
query+=key+'='+opt.data[key]+'&';
}
var query = query.substr(0,query.length-1)
xhr.open(opt.type,opt.url+query,true)
xhr.send()
}
document.querySelector('#btn').addEventListener('click',function(){
ajax({
url: '/login',
type: 'get',
data: {
username: 'xiaoming',
password: 'abcd1234'
},
success: function(ret){
console.log(ret);
},
error: function(){
console.log(' !')
}
})
})
//router :
app.get('/login', function(req, res) {
var name=req.query.username;
var pwd=req.query.password;
var datas;
if(name ==='xiaoming'&& pwd ==='abcd1234'){
datas = ' ';
}else {
datas = ' ';
}
res.send(datas);
});
タイトル5:より多くの機能を搭載
htmlファイル
のロード
var btn = document.querySelector('#load-more');
var ct = document.querySelector('#ct')
var curIndex = 0;
var dataArrive = true;
btn.addEventListener('click',function(e){
e.preventDefault()
if(!dataArrive){
return;
}
loadData(randerPage)
})
function loadData(callback){
var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function(){
if (xhr.readyState === 4){
if(xhr.status === 200 ||xhr.status ===304){
var results = JSON.parse(xhr.responseText)
console.log(results)
callback(results)
curIndex=curIndex+5
}else{
console.log(' ')
}
dataArrive = true;
}
}
xhr.open('get','/loadMore?index='+curIndex+'&length=5',true)
xhr.send()
dataArrive = false;
}
function randerPage(news){
var fragment = document.createDocumentFragment()
for(var i = 0;i<news.length;i++){
var node = document.createElement('li')
node.innerText = news[i]
fragment.appendChild(node)
}
ct.appendChild(fragment);
}
router部分
app.get('/loadMore', function(req, res) {
var curIdx = req.query.index
var len = req.query.length
var data = []
for(var i = 0; i < len; i++) {
data.push(' ' + (parseInt(curIdx) + i))
}
res.send(data);
});