Even if you had your application fully cached, you couldn ' t perform any external request without internet connection. That's why in order to build a offline-capable application, you must know when it ' s actually offline.This lesson shows the Navigatoronline API and Online/offline events on order to disable the functionality T o Send messages of the application. this. Online = navigator.online window.addeventlistener (' online ', () + = (This True) window.addeventlistener (' Offline
Previously we saw how to hijacking all the reqest, but this is not useful. So-now we want to see how to hijacking one kind of request. For example we want SERVCE worker only response to the request ends with ". jpg":Self.addeventlistener ('Fetch', Function (Event) { //Todo:only respond to requests with a//url ending in ". jpg" if(Event. Request.url.endsWith (". jpg")){ Event. Respondwith (Fetch ('/imgs/dr-evil.gif') ); }});Https://developer.mozilla.org/en-US/docs/Web/API/Request[
', ' dismiss '] }); Toast.answer.then (function(answer) { if (answer! = ' Refresh ') { // Tell the service worker to skipwaiting Worker.postmessage ({message: ' Skipwaiting '}} );};Service worker: Listen to the message event and call Skilwaiting ():// Todo:listen for the ' message ' event, and call // skipwaiting If you get the appropriate message function (event) { if(event.data.message = = "Skipwaiting") { self.skipwaiting (); }})The on We page, listen to Control
Once serive worker is registered, the first time we go to the app, we cannot see the logs from servcie works. Any only refersh it second time, then we able to see the logs.
Once we change service worker, it doesn't seem that we have change it.
The no1. is because, service worker only take control after it is loaded. but the first time we go to the page, service worker actually is not there, because, the browser need to fetch our assets, CSS, and JavaScript f
Pwa:add to Home screen
Angular Universal Server side rendering:for achieving better proference on init loading
Angular 2 CLI
ng New MyApp--mobile
Sw-precache:with Webpack:
Sw-toolbox:run Time Caching
ANGULAR2 Material Design:
*shellrender and *shellnorender
*shellrender:work as App Shell, happen before Angular 2 Component get rendered*shellnorender:angular2 Component take placeGO PROGRESSIVE[PWA
store one copy of each avatar. varStorageurl = Request.url.replace (/-\dx\.jpg$/, "); //Todo:return images from the "Wittr-content-imgs" cache //if they ' re in there. But afterwards, go to the network //To update the entry in the cache. // //Note that this is slightly different to servephoto! returnCaches.open (Contentimgscache). Then (function(cache) {returnCache.match (Storageurl). Then (function(response) {varNetfetchresponse = Fetch (Request). Then (function(networkresponse) {cache.p
Intead of Cache The root floder, we want to cache skeleton instead. self.addeventlistener (' Install ', function function return
Cache.addall ([
'/ ' js/main.js ' ' css/main.css ' , ' imgs/icon.png ' , ' https://fonts.gstatic.com/s /roboto/v15/2ux7wltfw3w8tcltuvlfyq.woff ' , ' https://fonts.gstatic.com/s /roboto/v15/d-6iyplofoccackzxwxsod8e0i7kzn-epnyo3hzu7kw.woff ' Respond to requests for the root page with thepage skeleton from the cache:Self.addeventlisten
' }); Store.createindex (' by-date ', ' time '); });In _opensocket, we had a function to fetch the old data from the IDB.// Open a connection to the server for live updates function () {... Ws.addeventlistener (function(event) { requestanimationframe() { Indexcontroller. _onsocketmessage (event.data); }); ...};//called when the Web socket sends message dataIndexcontroller.prototype._onsocketmessage =function(data) {varMessages =json.parse (data); This. _dbpromise.then (func
1, copy the Magento directory to the new server, export the database, import. If you do not go in because the Magento database using FOREIGN KEY constraints, through phpMyAdmin Import error, on the exported SQL file added a row set @[email protected] @FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;2, modify Magento configuration file, location in App/etc/local.xml, not
Label: blog HTTP strong Div SP log on C R"Magento background modification, magento foreground unchanged""The magento attribute is updated, and the magento foreground does not respond"If you encounter the above two situations or see the following prompt:Go to the magento back
Magento-magento site optimization (from csdn)
Magento's website is really too slow. I have thought of many methods, referred to a lot of information, and conducted many tests. I will summarize the general steps:1. Compress JS and CSS code. If necessary, combine all CSS and JS into one file, compress and cache them.2. Clear unnecessary comments in the magento
20101005 Note: at present, the magento online stores with more than 1000 products can reach a speed of 4-7/s.
20101104 Note: There are a lot of people trying to do this, but please be careful not to test it on the website in operation. I will continue to update it.
Test Tools: pagespeed, pingdom, and firebug.
Note: If you try, do not use a system test in use. all the methods mentioned below are being tested and improved. I am not responsible for any
We are still working hard to speed up magento. In addition to the built-in cache and compilation, many of our previous efforts started with reducing loading times such as JS, CSS, and images, the loading time of the page is sometimes the largest part-the page data is not processed too much. For example, the time consumption of each request is checked using firebug (the data is affected by many factors, for reference only ):
We can see that the loadi
greater than 0, all original payment methods are returned for customer's choice (the new free payment payment method should be removed).Solution SolutionsAfter reviewing the source code of Magento's payment module, I found that Magento1.9 native support for 0 amount order payment (if you have experience, you do not need to look at the source), in the background system->configration->sales- >payment Methods->zero Subtotal Checkout can be configured to turn on this payment method.The configuratio
all the messages, //gather all the photo URLs. // //Open the ' Wittr-content-imgs ' cache, and delete any entry //That you no longer need. varPhotostokeep = []; vartx = Db.transaction (' Wittrs '); returnTx.objectstore (' Wittrs '). GetAll (). Then (function(Messages) {Messages.foreach (function(message) {if(Message.photo) {Photostokeep.push (Message.photo); } }); returnCaches.open (' Wittr-content-imgs '); }). Then (function(cach
) {//wait all cache deleted returnPromise.all (//filter out staticcachename (only keep Staticcachename)Cachenames.filter (function (name) {returnName.startswith ('wittr') Name! =Staticcachename; }). map (function (name) {//Delete cache, return promise returncaches.delete (name); }) ) }) )})So in the code, the static one is ' wittr-demo-v13 '.We Use the APIs:// return a promise with all the cache name // return a promise and delete the selecte
= Db.transaction (' People '); varPeoplestore = Tx.objectstore (' People ')); returnPeoplestore. GetAll
(); }). Then (function(People) {console.table (people);});
Group by:To does gourp by we need to create INDEX: Import IDB from ' IDB '; varDbpromise = Idb.open (' test-db ', 3,function(upgradedb) {Switch(upgradedb.oldversion) { Case0:
//Keyval Store is already created at version 1
varKeyvalstore = Upgradedb.createobjectstore (' Keyval ')); Keyvalstore.put ("Wo
System-configuration-currency Setup on the right Currency options allowed currencies tick,Then system-manage Currency Rates Click Import to automatically set the exchange rate or manually enter it yourself, and then save it.(like Magento install IPS payment channel you need to set the exchange rate of RMB CNY first)So Magento background settings multi-currency processing is OK.Magento Foreground custom disp
Most of the analysis results show that some tasks of the project have unreasonable logic in allocation and work hours, leading to exceptions in the webpart. Usually, the PWA System maintenance staff will be crazy at this time, because no one changes the settings, the server services are normal, and this logical error occurs inadvertently under the project manager. I felt that the last second was still good, and suddenly I got down. (For administrators
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.