🚀 Enhanced Page Load Speed Test

🏎️ Улучшает скорость загрузки страниц, скрывая ненужные ресурсы и оптимизируя изображения для быстрого отклика и производительности

  1. // ==UserScript==
  2. // @name 🚀 Enhanced Page Load Speed Test
  3. // @namespace r1kov
  4. // @version 0.3-speed-test
  5. // @description 🏎️ Улучшает скорость загрузки страниц, скрывая ненужные ресурсы и оптимизируя изображения для быстрого отклика и производительности
  6. // @include *
  7. // @grant none
  8. // @license MIT
  9. // @run-at document-start
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Селекторы известных рекламных элементов
  16. const adSelectors = [
  17. 'script[src*="ads"]',
  18. 'script[src*="doubleclick"]',
  19. 'iframe[src*="ads"]',
  20. 'div[class*="ad"]',
  21. 'div[id*="ad"]'
  22. ];
  23.  
  24. function hideAds() {
  25. adSelectors.forEach(selector => {
  26. document.querySelectorAll(selector).forEach(ad => {
  27. // Проверяем, не является ли элемент важным, и не скрываем его полностью
  28. if (!ad.hasAttribute('data-important')) {
  29. // Вместо удаления, просто скрываем визуально
  30. ad.style.visibility = 'hidden';
  31. }
  32. });
  33. });
  34. }
  35.  
  36. // Отложенная загрузка изображений
  37. function lazyLoadImages() {
  38. document.querySelectorAll('img').forEach(img => {
  39. if (!img.complete && !img.loading) {
  40. img.loading = 'lazy';
  41. }
  42. });
  43. }
  44.  
  45. function optimizePage() {
  46. hideAds();
  47. lazyLoadImages();
  48. }
  49.  
  50. // Оптимизация при загрузке страницы
  51. if (document.readyState === 'loading') {
  52. document.addEventListener('DOMContentLoaded', optimizePage);
  53. } else {
  54. optimizePage();
  55. }
  56.  
  57. // Наблюдение за изменениями DOM, чтобы применять оптимизацию к динамически загруженным элементам
  58. const observer = new MutationObserver(optimizePage);
  59. observer.observe(document.documentElement, { childList: true, subtree: true });
  60.  
  61. })();