  Redundant transfer of resources is a critical issue for compromising the
performance of mobile Web applications (a.k.a., apps) in terms of data traffic,
load time, and even energy consumption. Evidence shows that the current cache
mechanisms are far from satisfactory. With lessons learned from how native apps
manage their resources, in this paper, we propose the ReWAP approach to
fundamentally reducing redundant transfers by restructuring the resource
loading of mobile Web apps. ReWAP is based on an efficient mechanism of
resource packaging where stable resources are encapsulated and maintained into
a package, and such a package shall be loaded always from the local storage and
updated by explicitly refreshing. By retrieving and analyzing the update of
resources, ReWAP maintains resource packages that can accurately identify which
resources can be loaded from the local storage for a considerably long period.
ReWAP also provides a wrapper for mobile Web apps to enable loading and
updating resource packages in the local storage as well as loading resources
from resource packages. ReWAP can be easily and seamlessly deployed into
existing mobile Web architectures with minimal modifications, and is
transparent to end-users. We evaluate ReWAP based on continuous 15-day access
traces of 50 mobile Web apps that suffer heavily from the problem of redundant
transfers. Compared to the original mobile Web apps with cache enabled, ReWAP
can significantly reduce the data traffic, with the median saving up to 51%. In
addition, ReWAP can incur only very minor runtime overhead of the client-side
browsers.
