main.js
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import Vant from 'vant'
import { Lazyload } from 'vant'
import commMixin from '@/mixin/comm'
import 'vant/lib/index.css'
import { prettyPrint } from './filters'
import loggerPlugin from './plugin/loggerPlugin'
// import VueDragResize from 'vue-drag-resize'
// Vue.component('vue-drag-resize', VueDragResize)
Vue.use(Vant)
Vue.use(Lazyload)
Vue.use(loggerPlugin, store)
Vue.filter('prettyPrint', prettyPrint)
Vue.config.productionTip = false
Vue.config.errorHandler = function (error, vm, info) {
console.error('Error message:' + error.message, 'Error stack:' + error.stack)
}
// function getObjToArrayBufferDoLength(obj) {
// // 将对象序列化为 JSON 字符串
// const json = JSON.stringify(obj)
// // 创建一个新的 TextEncoder 对象
// const encoder = new TextEncoder()
// // 将 JSON 字符串编码为 Uint8Array
// const data = encoder.encode(json)
// // 创建一个新的 ArrayBuffer,大小为数据长度
// const buffer = new ArrayBuffer(data.length)
// // 获取 ArrayBuffer 的视图(Uint8Array)
// const view = new Uint8Array(buffer)
// // 将数据复制到 ArrayBuffer 中
// view.set(data)
// return view.byteLength
// }
Vue.mixin(commMixin)
const app = new Vue({
router,
store,
created() {
this.setIsApp()
setTimeout(() => {
if (!this.getIsApp) {
rewriteXHR()
}
}, 0)
},
methods: {
setIsApp() {
let isApp = false
try {
isApp = webf ? true : false
} catch (error) {
isApp = false
}
this.$store.commit('setIsApp', isApp)
}
},
render: h => h(App)
}).$mount('#app')
function rewriteXHR() {
// 保存原始的 XMLHttpRequest 构造函数
let OriginalXHR = window.XMLHttpRequest
// 创建新的 XMLHttpRequest 构造函数,扩展了原始的构造函数
function CustomXHR(app) {
let xhr = new OriginalXHR()
let sendDate = 0
xhr.addEventListener('loadstart', function (event) {
sendDate = Date.now()
})
xhr.addEventListener('load', function (event) {
const responseURL = xhr.response.url || xhr.responseURL
const response = xhr.response.body || xhr.response
try {
console.netwokrLog({
name: responseURL.split('/').pop(),
status: xhr.status,
statusText: xhr.statusText,
response: response,
responseURL: responseURL,
size: 0,
time: Date.now() - sendDate
})
} catch (error) {
console.log('error:', error)
}
})
xhr.addEventListener('error', function (event) {
console.log('error:', event)
})
return xhr
}
// 重写全局的 XMLHttpRequest 构造函数
window.XMLHttpRequest = CustomXHR
}
// new Vue({
// router,
// store,
// render: h => h(App)
// }).$mount(document.body)