Plugin Directory

Changeset 2140946


Ignore:
Timestamp:
08/17/2019 09:15:01 AM (7 years ago)
Author:
instantpage
Message:

v2.0.0

Location:
instant-page
Files:
4 added
2 edited

Legend:

Unmodified
Added
Removed
  • instant-page/trunk/instantpage.js

    r2140305 r2140946  
    1 /*! instant.page v1.3.0 - (C) 2019 Alexandre Dieulot - https://instant.page/license */
     1/*! instant.page v2.0.0 - (C) 2019 Alexandre Dieulot - https://instant.page/license */
    22
    33let urlToPreload
     
    1212const useWhitelist = 'instantWhitelist' in document.body.dataset
    1313
     14let delayOnHover = 65
     15let useMousedown = false
     16let useMousedownOnly = false
     17if ('instantIntensity' in document.body.dataset) {
     18  if (document.body.dataset.instantIntensity.substr(0, 'mousedown'.length) == 'mousedown') {
     19    useMousedown = true
     20    if (document.body.dataset.instantIntensity == 'mousedown-only') {
     21      useMousedownOnly = true
     22    }
     23  }
     24  else {
     25    const milliseconds = parseInt(document.body.dataset.instantIntensity)
     26    if (milliseconds != NaN) {
     27      delayOnHover = milliseconds
     28    }
     29  }
     30}
     31
    1432if (isSupported && !isDataSaverEnabled) {
    1533  prefetcher.rel = 'prefetch'
     
    2038    passive: true,
    2139  }
    22   document.addEventListener('touchstart', touchstartListener, eventListenersOptions)
    23   document.addEventListener('mouseover', mouseoverListener, eventListenersOptions)
     40
     41  if (!useMousedownOnly) {
     42    document.addEventListener('touchstart', touchstartListener, eventListenersOptions)
     43  }
     44
     45  if (!useMousedown) {
     46    document.addEventListener('mouseover', mouseoverListener, eventListenersOptions)
     47  }
     48  else {
     49    document.addEventListener('mousedown', mousedownListener, eventListenersOptions)
     50  }
    2451}
    2552
     
    6592    preload(linkElement.href)
    6693    mouseoverTimer = undefined
    67   }, 65)
     94  }, delayOnHover)
     95}
     96
     97function mousedownListener(event) {
     98  const linkElement = event.target.closest('a')
     99
     100  if (!isPreloadable(linkElement)) {
     101    return
     102  }
     103
     104  linkElement.addEventListener('mouseout', mouseoutListener, {passive: true})
     105
     106  urlToPreload = linkElement.href
     107
     108  preload(linkElement.href)
    68109}
    69110
     
    77118    mouseoverTimer = undefined
    78119  }
    79   else {
    80     urlToPreload = undefined
    81     stopPreloading()
    82   }
     120
     121  urlToPreload = undefined
     122
     123  stopPreloading()
    83124}
    84125
  • instant-page/trunk/instantpage.php

    r2140305 r2140946  
    55Description: Make your site’s pages instant in 1 minute.
    66Author: Alexandre Dieulot
    7 Version: 1.3.0
     7Version: 2.0.0
    88Author URI: https://dieulot.fr/
    99*/
Note: See TracChangeset for help on using the changeset viewer.