zoukankan      html  css  js  c++  java
  • SAP CRM Fiori应用冗余round trip的原因分析

    Sent: Wednesday, July 22, 2015 7:54 PM

    有同事抱怨每次他们保存一个appointment时,除了正常的batch 操作外,还有3个莫名的read 操作。


    The callstack clearly shows that the three roundtrips are NOT issued by customer extension, or else the customer js file could be observed in the callstack.

    Set a breakpoint on the top most callstack, h function. Check the content of e.target.data:

    This is actually the batch request payload which could be observed in Chrome network tab:

    This finding gives me more confidence that these roundtrips are issued by framework, not standard or customer application code.

    So I just continue debugging until I reach this suspicious stack:

    in line 1957, this.bRefreshAfterChange = true.

    However, in our internal system ( where everything works fine, there is no duplicate read operations ), this.bRefreshAfterChange = false, which has suppressed the refresh operation. This is the reason why the read operation could not be found in my internal system, since they are not executed at all. But in customer system, _isRefreshNeeded returns true, which leads to the execution of all subsequent read operations.

    So why is this difference between two systems? In Chrome development tool, search the boolean variable name and we found one function setRefreshAfterChange defined for ODataModel. Just set a breakpoint in this method and re-launch the application in my internal system from beginning:

    Breakpoint is triggered:

    However, this line in customer system is missing, which is the root cause - our latest standard code didn't reach customer system.

    出问题的系统上的标准代码里少了这一行,我在local的Eclipse里试过,如果注释掉,behavior就和出问题的系统上一样,能够重现那三个多余的读操作了。

    要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  • 相关阅读:
    如何禁止用户直接对TextBox进行数据粘贴?(ASP.NET WEB开发)
    jquery过滤选择器前加空格与不加空格的区别(转)
    linux设置ip.dns.gateway
    Adobe Fireworks CS4 序列号(注册码)
    AS3清空数组的四种方法
    Flash中用AS3做的游戏,导出apk安装到手机上滤镜效果出不来为什么?
    用AS3清空容器下所有子显示对象
    对Linux进程的理解
    C++基础
    虚拟机三种网络模式(hostonly、Bridged、NAT)
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/12371574.html
Copyright © 2011-2022 走看看