pal画布界面去掉浏览、下载监听

This commit is contained in:
zhaolei 2025-09-23 20:28:54 +08:00
parent c2540118d3
commit 78ff42c8d2
2 changed files with 0 additions and 173 deletions

View File

@ -662,147 +662,6 @@
});
// 页面停留时间统计
class PageStayTimeTracker {
constructor() {
this.startTime = null;
this.lastReportTime = null;
this.reportInterval = 60000; // 60秒报告一次
this.isPageVisible = true; // 默认页面是可见的
this.visibilityBound = false; // 是否已绑定可见性事件
}
// 延迟绑定可见性事件
bindVisibilityEvents() {
if (this.visibilityBound) return;
document.addEventListener('visibilitychange', this.handleVisibilityChange.bind(this));
this.visibilityBound = true;
// 初始检查页面可见状态
this.isPageVisible = !document.hidden;
if (!this.isPageVisible) {
this.lastReportTime = new Date(); // 更新最后记录时间
}
}
// 开始跟踪
startTracking() {
if (this.isActive) return;
this.startTime = new Date();
this.lastReportTime = this.startTime;
this.isActive = true;
// 设置定时器
this.intervalId = setInterval(() => {
if (this.isPageVisible) {
this.reportStayTime();
}
}, this.reportInterval);
// 页面卸载前发送剩余时间
window.addEventListener('beforeunload', this.finalReport.bind(this));
// 延迟绑定可见性事件(在用户首次交互后)
const bindOnInteraction = () => {
this.bindVisibilityEvents();
// 移除所有交互监听器
['click', 'scroll', 'keydown', 'mousemove', 'touchstart'].forEach(event => {
window.removeEventListener(event, bindOnInteraction);
});
};
// 添加多种交互监听
['click', 'scroll', 'keydown', 'mousemove', 'touchstart'].forEach(event => {
window.addEventListener(event, bindOnInteraction, { once: true });
});
}
// 报告停留时间
reportStayTime() {
const now = new Date();
const elapsed = now - this.lastReportTime;
this.totalStayTime += elapsed;
this.lastReportTime = now;
this.sendStayTimeToServer(elapsed, true);
}
// 最终报告
finalReport() {
if (!this.isActive) return;
if (this.isPageVisible) {
const now = new Date();
const elapsed = now - this.lastReportTime;
}
this.sendStayTimeToServer(elapsed, false);
this.cleanUp();
}
// 处理页面可见性变化
handleVisibilityChange() {
var now = new Date();
if (document.hidden) {
if (this.isPageVisible) {
this.isPageVisible = false;
// 页面不可见,暂停计时
const now = new Date();
const elapsed = now - this.lastReportTime;
this.totalStayTime += elapsed;
this.sendStayTimeToServer(elapsed, false);
clearInterval(this.intervalId);
}
} else {
// 页面恢复可见
if (!this.isPageVisible) {
this.lastReportTime = now; // 重置最后记录时间
}
this.isPageVisible = true;
}
}
// 发送数据到服务器
sendStayTimeToServer(elapsedMs,isActive) {
$.ajax({
type : "POST",
url : "./w?sid=" + encodeURIComponent($('#sid').val()) + "&cmd=com.awspaas.user.apps.browsing_data.service.insertReadingLog",
data : "userId="+userId+"&userName="+userName+"&ruuid="+ruuid+"&fileName="+fileName+"&startTime="+new Date(this.startTime).getTime()+"&currentTime="+new Date().getTime()+"&browserId="+browserId+"&isActive="+isActive,
success : function(msg) {
if (msg.result == "error") {
$.simpleAlert("新增失败", "error");
}
}
});
}
// 清理资源
cleanUp() {
clearInterval(this.intervalId);
document.removeEventListener('visibilitychange', this.handleVisibilityChange);
window.removeEventListener('beforeunload', this.finalReport);
this.isActive = false;
}
}
// 使用示例
const tracker = new PageStayTimeTracker();
tracker.startTracking();

View File

@ -455,38 +455,6 @@ function delFileAll(callback) { //删除全部文件
function downloadFile(url,type) {
window.location.href = url;
var downloadsource;
if(type=='s'){
downloadsource="数据属性";
}else{
downloadsource="文件属性";
}
var queryString = url.split('?')[1];
var params = new URLSearchParams(queryString);
var fileName = params.get('fileName');
var fileExtension = fileName.substring(fileName.lastIndexOf('.')+1);
var subFileName=fileName.substring(0,fileName.lastIndexOf("."));
var params = {
"modelId": pl_uuid,
"modelName": parent.fileName,
"downloadType": fileExtension,
"fileName":subFileName,
"recordSource": "PAL画布-附件下载",
"downloadsource": downloadsource
}
jQuery.ajax({
type: "POST",
url: "./jd?sid=" + encodeURIComponent(sid) + "&cmd=com.awspaas.user.apps.browsing_data.service.downloadRecord",
data: params,
success: function(msg) {
$.simpleAlert("close");
},
err: function(msg) {
$.simpleAlert("close");
}
});
}