抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

Locations and directions


Student : Blair

Class time:08:00-08:20

Teacher’s E-mail: shuang_sun_ef@163.com


English
ror) { throw error; } resolve(record); }).catch(error => { console.error('Failed to create', error); reject(error); }); } }).catch((error) => { console.error('LeanCloud Counter Error:', error); reject(error); }); }) }, // 发起自增请求 increment(Counter, incrArr) { return new Promise(function (resolve, reject) { Counter('post', '/batch', { "requests": incrArr }).then((res) => { res = res.json(); if (res.error) { throw res.error; } resolve(res); }).catch((error) => { console.error('Failed to save visitor count', error); reject(error); }); }); }, // 构建自增请求体 buildIncrement(objectId) { return { "method": "PUT", "path": `/1.1/classes/Counter/${ objectId }`, "body": { "times": { '__op': 'Increment', 'amount': 1 } } } }, // 校验是否为有效的 UV validUV() { var key = 'LeanCloudUVTimestamp'; var flag = localStorage.getItem(key); if (flag) { // 距离标记小于 24 小时则不计为 UV if (new Date().getTime() - parseInt(flag) <= 86400000) { return false; } } localStorage.setItem(key, new Date().getTime().toString()); return true; }, addCount(Counter) { var enableIncr = '' === 'true' && window.location.hostname !== 'localhost'; enableIncr = true; var getterArr = []; var incrArr = []; // 请求 PV 并自增 var pvCtn = document.querySelector('#lc-sv'); if (pvCtn || enableIncr) { var pvGetter = this.getRecord(Counter, 'http://www.blairee.com' + '/#lc-sv', 'Visits').then((record) => { incrArr.push(this.buildIncrement(record.objectId)) var eles = document.querySelectorAll('#lc-sv #number'); if (eles.length > 0) { eles.forEach((el,index,array)=>{ el.innerText = record.times + 1; if (pvCtn) { pvCtn.style.display = 'inline'; } }) } }); getterArr.push(pvGetter); } // 请求 UV 并自增 var uvCtn = document.querySelector('#lc-uv'); if (uvCtn || enableIncr) { var uvGetter = this.getRecord(Counter, 'http://www.blairee.com' + '/#lc-uv', 'Visitors').then((record) => { var vuv = this.validUV(); vuv && incrArr.push(this.buildIncrement(record.objectId)) var eles = document.querySelectorAll('#lc-uv #number'); if (eles.length > 0) { eles.forEach((el,index,array)=>{ el.innerText = record.times + (vuv ? 1 : 0); if (uvCtn) { uvCtn.style.display = 'inline'; } }) } }); getterArr.push(uvGetter); } // 请求文章的浏览数,如果是当前页面就自增 var allPV = document.querySelectorAll('#lc-pv'); if (allPV.length > 0 || enableIncr) { for (i = 0; i < allPV.length; i++) { let pv = allPV[i]; let title = pv.getAttribute('data-title'); var url = 'http://www.blairee.com' + pv.getAttribute('data-path'); if (url) { var viewGetter = this.getRecord(Counter, url, title).then((record) => { // 是当前页面就自增 let curPath = window.location.pathname; if (curPath.includes('index.html')) { curPath = curPath.substring(0, curPath.lastIndexOf('index.html')); } if (pv.getAttribute('data-path') == curPath) { incrArr.push(this.buildIncrement(record.objectId)); } if (pv) { var ele = pv.querySelector('#lc-pv #number'); if (ele) { if (pv.getAttribute('data-path') == curPath) { ele.innerText = (record.times || 0) + 1; } else { ele.innerText = record.times || 0; } pv.style.display = 'inline'; } } }); getterArr.push(viewGetter); } } } // 如果启动计数自增,批量发起自增请求 if (enableIncr) { Promise.all(getterArr).then(() => { incrArr.length > 0 && this.increment(Counter, incrArr); }) } }, fetchData(api_server) { var Counter = (method, url, data) => { return fetch(`${ api_server }/1.1${ url }`, { method, headers: { 'X-LC-Id': this.app_id, 'X-LC-Key': this.app_key, 'Content-Type': 'application/json', }, body: JSON.stringify(data) }); }; this.addCount(Counter); }, refreshCounter() { var api_server = this.app_id.slice(-9) !== '-MdYXbMMI' ? this.custom_api_server : `https://${ this.app_id.slice(0, 8).toLowerCase() }.api.lncldglobal.com`; if (api_server) { this.fetchData(api_server); } else { fetch('https://app-router.leancloud.cn/2/route?appId=' + this.app_id) .then(resp => resp.json()) .then(({api_server}) => { this.fetchData('https://' + api_server); }); } } }; LCCounter.refreshCounter(); document.addEventListener('pjax:complete', function () { LCCounter.refreshCounter(); });