A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5 年之前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>These 7 things are slowing down your site’s user experience (and you have no control over them) (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="http://www.webperformancetoday.com/2015/01/21/xx-things-slowing-site-control/">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. These 7 things are slowing down your site’s user experience (and you have no control over them) (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="http://www.webperformancetoday.com/2015/01/21/xx-things-slowing-site-control/">Source originale du contenu</a></h3>
  445. <p>As a website owner, you have 100% control over your site, plus a hefty amount of control over the first and middle mile of the network your pages travel over. You can (and you should) optimize the heck out of your pages, invest in a killer back end, and deploy the best content delivery network that money can buy. These tactics put you in charge of several performance areas, which is great.</p>
  446. <p>But when it comes to the last mile &#8212; or more specifically, the last few feet &#8212; matters are no longer in your hands.</p>
  447. <p>Today, let&#8217;s review a handful of performance-leaching culprits that are outside your control &#8212; and which can add precious seconds to your load times.</p>
  448. <h1>1. End user connection speed</h1>
  449. <p>If you live in an urban center, then congratulations &#8212; you probably enjoy connections speeds of 20-30 Mbps or more. If you don&#8217;t live in an urban center, then you have my sympathy.</p>
  450. <p>As someone who lives some distance from a major city, I can tell you that 1-3 Mbps is a (sadly) common occurrence in my house, especially during the internet rush hour when everyone in my neighborhood gets home and starts streaming movies and doing whatever else it is they do online. There’ve been many, many times when I’ve gotten incredibly frustrated waiting for a file to download or stream, and I’ve performed many, many speed tests with sub-3 Mbps results.</p>
  451. <p>Oh look! Here&#8217;s one right now:</p>
  452. <p><img class="aligncenter size-full wp-image-6356" src="http://3vavpsbeqbk19ao0rfgkqm17sj.wpengine.netdna-cdn.com/wp-content/uploads/2015/01/out-of-control-connection.png" alt="Download speed test" width="795" height="385" /></p>
  453. <p>I&#8217;ve gotten into long, heated debates with people (always city dwellers) who flat-out refuse to believe that THAT many people are really affected by poor connection speeds. Their arguments seem to be largely fueled by the fact that they&#8217;re operating with a limited view of connection speed data, which corroborates their own personal experience.</p>
  454. <p>In all my research into US connection speeds, I’ve found that the numbers vary hugely depending on the source. At the highest end is OOKLA&#8217;s “household download index” that states <a href="http://www.netindex.com/download/2,1/United-States/" target="_blank">a typical US household connection is 30 Mbps</a>. My issue with OOKLA&#8217;s data is I can’t find specifics on how they gather it, or whether it&#8217;s based on average speeds or peak speeds. I suspect the latter, based on comparing their data to <a href="http://www.akamai.com/stateoftheinternet/" target="_blank">Akamai’s “state of the internet” reports</a>, which give numbers for both average and peak Mbps. OOKLA’s index loosely correlates to Akamai’s peak broadband numbers. According to Akamai, <em>average</em> broadband connection speeds run approximately 12-17 Mbps for the ten fastest states. The slowest states perform significantly worse, with Alaska trailing at 7.2 Mbps. (And at the risk of pointing out the obvious, this doesn&#8217;t mean everyone in Alaska consistently gets 7.2 Mbps. It means, for example, that while some people may enjoy up to 12-15 Mbps connections, there are others who, like me, struggle with 2-3 Mbps or worse.)</p>
  455. <p>Another issue: When most agents report on connection speed, they tend to focus on broadband, which ignores a massive swath of the population. (Broadband is, by definition, an internet connection that is above 4 Mbps, regardless of the connection being used.) <strong>According to Akamai, in many states broadband adoption is only around 50%. And in roughly one out of ten states, broadband adoption rates are actually declining.</strong></p>
  456. <p>Takeaway: Non-broadband users aren’t freakish outliers whom you should feel comfortable ignoring.<strong><br />
  457. </strong></p>
  458. <p>And that&#8217;s just desktop performance. Don&#8217;t even get me started on mobile.</p>
  459. <h1>2. What the neighbours are downloading</h1>
  460. <p>If, like me, you&#8217;re already at the low end of the connection speed spectrum, when your neighbours start streaming a movie or downloading a massive file, you REALLY feel it. I&#8217;ve been known to schedule my download/upload activities around the release of new episodes of <em>Game of Thrones</em> and <em>Breaking Bad</em>. Sad or savvy? Maybe a little bit of both.</p>
  461. <p><img class="aligncenter size-full wp-image-6357" src="http://3vavpsbeqbk19ao0rfgkqm17sj.wpengine.netdna-cdn.com/wp-content/uploads/2015/01/out-of-control-GOT.png" alt="Slow download speeds" width="795" height="450" /></p>
  462. <h1> 3. How old their modem is</h1>
  463. <p>I&#8217;ve yet to encounter an ISP that proactively reminds customers to upgrade their hardware. Most people use the same modem for between five to ten years, which guarantees they&#8217;re not experiencing optimal load times &#8212; even if they&#8217;re paying for high-speed internet.</p>
  464. <p>Here&#8217;s why:</p>
  465. <p>If your modem is five or more years old, then it pre-dates DOCSIS 3.0. (DOCSIS stands for Data Over Cable Service Interface Specification. It&#8217;s the international data transmission standard used by cable networks.) Back around 2010-2011, most cable companies made the switch from DOCSIS 2.0 to DOCSIS 3.0. If you care about performance, you should be using a DOCSIS 3.0 modem. Otherwise, you&#8217;ll never be able to fully leverage your high-speed plan (if you have one).</p>
  466. <p>The funny (but not ha-ha funny) thing here is the fact that so many people have jumped on the high-speed bandwagon and are currently paying their ISPs for so-called high-speed internet. But without the right modem they&#8217;re not getting the full service they&#8217;ve paid for.</p>
  467. <h1>4. How old their device is</h1>
  468. <p>The average person replaces their machine every 4.5 years. In those 4.5 years, performance can seriously degrade &#8212; due to viruses or, most commonly, simply running low on memory. And while many people suspect that upgrading their memory would help, most folks consider themselves too unsavvy to actually do it. Instead, they suffer with poor performance until it gets so bad they finally replace their machine.</p>
  469. <h1>5. How old their browser is</h1>
  470. <p>You upgrade your browser religiously. Many people do not or cannot. (To illustrate: When Wine.com first became a Radware customer, one of their performance issues was that a significant portion of their customer base worked in the financial sector, which at the time was obligated to use IE 6 because it was the only browser compatible with specific legacy apps. These customers tended to visit the site from work, which inevitably led to a poor user experience until Wine.com was able to implement <a title="Radware FastView" href="http://www.radware.com/Products/FastView/" target="_blank"><strong>FastView</strong></a>.)</p>
  471. <p>Each generation of browser offers performance gains over the previous generation. For example, according to Microsoft, IE 10 is 20% faster than IE 9. But according to StatCounter, <a href="http://gs.statcounter.com/#desktop-browser_version-US-monthly-201407-201412" target="_blank">roughly half of Internet Explorer users use IE 8 or 9</a>, missing out on IE 10&#8217;s performance boost.</p>
  472. <h1>6. How they&#8217;re using (and abusing) their browser</h1>
  473. <p>Browser age is just one issue. There are a number of other scenarios that can affect browser performance:</p>
  474. <ul>
  475. <li>Stress from having multiple tabs or windows open simultaneously.</li>
  476. <li>Performance impact from toolbar add-ons. (Not all widgets affect performance, but some definitely do, particularly security plug-ins.)</li>
  477. <li>Degradation over time. (The longer the browser remains open, the greater its likelihood of slowing down and crashing.)</li>
  478. <li>Variable performance when visiting sites that use HTML5 or Flash, or when watching videos. (Some browsers handle some content types better than others.)</li>
  479. </ul>
  480. <p><img class="aligncenter size-full wp-image-6358" src="http://3vavpsbeqbk19ao0rfgkqm17sj.wpengine.netdna-cdn.com/wp-content/uploads/2015/01/out-of-control-browser.jpg" alt="Too many browser tabs. I've made a huge mistake." width="700" height="391" /></p>
  481. <p>Most people are guilty of keeping the same browser window open, racking up a dozen or so tabs, and living with the slow performance degradation that ensues &#8212; until the browser finally crashes. According to this Lifehacker post, <a href="http://lifehacker.com/5984149/why-you-should-never-have-more-than-nine-browser-tabs-open" target="_blank">you should never have more than nine browser tabs open at the same time</a>. Raise your hand if you have more than nine tabs open right now. *raises hand*</p>
  482. <h1>7. Running other applications</h1>
  483. <p>Running too many applications at the same time affects performance. But most non-techie internet users don&#8217;t know this.</p>
  484. <p>Security solutions are a good example of this. Antivirus software scans incoming files to identify and eliminate viruses and other malware such as adware, spyware, trojan horses, etc. It does this by analyzing all files coming through your browser. Like firewalls and security products, antivirus software operates in realtime, meaning that files are paused for inspection before being permitted to download.</p>
  485. <p>Because of this inspection, a performance penalty is inevitable and unavoidable. The extent of the penalty depends on the software and on the composition of the page/resource being rendered in the browser.</p>
  486. <h1>How do all these factors add up, performance-wise?</h1>
  487. <p>Consider this scenario:</p>
  488. <p style="padding-left: 30px;">Someone visits your site, using a four-year-old PC running IE9 with a handful of nifty toolbar add-ons, including a parental control plug-in (this is a shared computer) and a couple of security plug-ins, all of which are significantly hurting performance. They think they have high-speed internet because they&#8217;re paying their service provider for it, but they&#8217;re using a six-year-old modem. They tend to leave all their applications on, for easy access. They only restart their machine when it&#8217;s running so slowly that it becomes intolerable &#8212; or when it crashes. They keep the same browser window open for days or weeks on end, and they currently have eleven tabs open. They&#8217;re concerned about internet security, so they&#8217;re also running antivirus software.</p>
  489. <p><strong>All of these factors can add up &#8212; not just to extra milliseconds, but to extra <em>seconds</em> of user time.</strong> Unfortunately, when people are unhappy with how fast a page is loading, the number one target for their blame is the site. Fair? No. It&#8217;s also not fair that <a title="6 Scary Things You Should Know About the Speed of Your Website [INFOGRAPHIC]" href="http://www.webperformancetoday.com/2014/10/30/scary-ecommerce-web-performance-infographic/" target="_blank"><strong>these lost seconds result in lost revenue for your company</strong></a>.</p>
  490. <h1>Takeaway</h1>
  491. <p>As I said at the top of this post, you have no control over potential problems caused by any of these factors. But that doesn’t mean you shouldn’t arm yourself with the knowledge that problems are occurring.</p>
  492. <p>While you can&#8217;t control the end-user environment, you have tons of control over your pages. Resource consolidation, compression, smarter browser caching &#8212; these are just a few of the techniques you can leverage to mitigate the damage done by things like poor connection speeds and old hardware.</p>
  493. <p>This is also why it&#8217;s crucial to not rely on your own experience with your site. It&#8217;s also why you can&#8217;t rely on synthetic tests to give you a true sense of how your pages perform. (Don&#8217;t get me wrong: synthetic tests definitely have value, but they tend to skew toward the optimistic end of the spectrum.) You need real user monitoring that gives you full visibility into how actual people are experiencing your site.</p>
  494. </article>
  495. </section>
  496. <nav id="jumpto">
  497. <p>
  498. <a href="/david/blog/">Accueil du blog</a> |
  499. <a href="http://www.webperformancetoday.com/2015/01/21/xx-things-slowing-site-control/">Source originale</a> |
  500. <a href="/david/stream/2019/">Accueil du flux</a>
  501. </p>
  502. </nav>
  503. <footer>
  504. <div>
  505. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  506. <p>
  507. Bonjour/Hi!
  508. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  509. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  510. </p>
  511. <p>
  512. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  513. </p>
  514. <p>
  515. Voici quelques articles choisis :
  516. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  517. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  518. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  519. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  520. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  521. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  522. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  523. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  524. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  525. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  526. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  527. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  528. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  529. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  530. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  531. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  532. </p>
  533. <p>
  534. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  535. </p>
  536. <p>
  537. Je ne traque pas ta navigation mais mon
  538. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  539. conserve des logs d’accès.
  540. </p>
  541. </div>
  542. </footer>
  543. <script type="text/javascript">
  544. ;(_ => {
  545. const jumper = document.getElementById('jumper')
  546. jumper.addEventListener('click', e => {
  547. e.preventDefault()
  548. const anchor = e.target.getAttribute('href')
  549. const targetEl = document.getElementById(anchor.substring(1))
  550. targetEl.scrollIntoView({behavior: 'smooth'})
  551. })
  552. })()
  553. </script>