【问题标题】:Want to know is there a way to know in angular js 1.5 whether a page opened or loaded or not想知道有没有办法在 Angular js 1.5 中知道页面是否打开或加载
【发布时间】:2018-05-23 23:37:56
【问题描述】:

我尝试过使用许多事件,例如 $routeChangeSuccess$viewContentLoaded

window.LOGGING_ON = true;
var loggingUrl = '/payment/op/payment/paymentPageRendering';

window.ajaxRequest = function () {
   var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; //activeX versions to check for in IE
   if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
    for (var i=0; i<activexmodes.length; i++){
     try {
      return new ActiveXObject(activexmodes[i]);
     }
     catch(e){
      //suppress error
     }
    }
   }
   else if (window.XMLHttpRequest) // if Mozilla, Safari etc
    return new XMLHttpRequest();
   else
    return false;
};
window.loggingPay = function(obj,ajxRequestObject,sync){ 
  var logUrl = loggingUrl;
  var async = true;
  if(!obj){
    var payLoad = "isRendered=false&pageUrl="+window.location;
  }else{
    var payLoad = "isRendered=true";
    for(key in obj){
      payLoad =  payLoad + "&"+key+"="+obj[key];
    }
    payLoad.isRendered = true;
  }  
  if(sync) 
    async = false;

  ajxRequestObject.open("POST", logUrl , async);  
  ajxRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
  ajxRequestObject.send(payLoad); 
  ajxRequestObject.onreadystatechange=function(res){
         if (ajxRequestObject.readyState==4){
          if (ajxRequestObject.status==200 || window.location.href.indexOf("http")==-1){
              window.loggingObject = JSON.parse(ajxRequestObject.responseText).result;
              delete ajxRequestObject;

          } else {
            console.log("An error has occured making the error request");
          }
         }
    }
}  

最后我所做的是,我登录了索引文件并再次登录了页脚,但我想这不是一个好的解决方案,请为此提出一些解决方案。

没有具体错误,但我猜这个解决方案的结果可能有问题

【问题讨论】:

  • 真的不清楚你到底想完成什么,或者你想解决什么更高层次的问题
  • 我正在做一个页面非常关键的水疗中心,所以我们要确保页面在每个浏览器和每个移动设备上都可以打开,很多时候客户抱怨页面没有打开,所以如何要知道页面没有在客户浏览器上打开,错误是什么等等,所以想知道当特定路线的模板完全加载或其他人使用的任何解决方案时是否会触发任何角度事件。

标签: javascript angularjs web frontend web-frontend


【解决方案1】:

您可以尝试组合不同的事件,例如 $routeChangeSuccess$stateChangeStart$stateNotFound

并将日志添加到您的数据库中,以查看哪些错误以及用户获取的位置。

在此函数中,您可以发送所有需要的数据。

注意:状态更改事件已被弃用、禁用并替换为 从 1.0 版开始的转换挂钩 (details)

【讨论】:

  • 这是否也会捕获错误以及控制器中的解析错误等?
  • 我认为它没有捕获任何错误,这是函数的正常行为。但是有了这个你就可以理解问题出在哪里了。
猜你喜欢
  • 2023-03-18
  • 2010-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
  • 2019-02-01
  • 1970-01-01
相关资源
最近更新 更多