1. function cleanupArtifacts(timeoutSeconds) {
  2. const timeout = timeoutSeconds * 1000; // Convert seconds to milliseconds
  3. const startTime = Date.now();
  4. const cleanupTasks = [
  5. () => {
  6. // Clear browser cache (example - adjust for your needs)
  7. const cache = document.cookie;
  8. document.cookie = ''; // Clear all cookies (be careful!)
  9. console.log("Cookies cleared.");
  10. },
  11. () => {
  12. // Remove localStorage data (example)
  13. localStorage.clear();
  14. console.log("localStorage cleared.");
  15. },
  16. () => {
  17. // Clear session storage data (example)
  18. sessionStorage.clear();
  19. console.log("sessionStorage cleared.");
  20. },
  21. () => {
  22. // Remove specific elements from the DOM (example)
  23. const elementsToRemove = document.querySelectorAll('.temp-element');
  24. elementsToRemove.forEach(element => element.remove());
  25. console.log("Temporary elements removed.");
  26. },
  27. () => {
  28. //Remove history entries
  29. window.history.go(-1);
  30. console.log("History reset.");
  31. }
  32. ];
  33. let completedTasks = 0;
  34. function executeTasks() {
  35. if (Date.now() - startTime >= timeout) {
  36. console.warn("Timeout reached. Stopping cleanup.");
  37. return;
  38. }
  39. if (completedTasks < cleanupTasks.length) {
  40. const task = cleanupTasks[completedTasks];
  41. task()
  42. .then(() => {
  43. completedTasks++;
  44. executeTasks(); // Process next task
  45. })
  46. .catch(error => {
  47. console.error("Error executing cleanup task:", error);
  48. completedTasks++;
  49. executeTasks(); // Continue with remaining tasks even if one fails.
  50. });
  51. } else {
  52. console.log("Cleanup completed.");
  53. }
  54. }
  55. console.log("Starting cleanup process with timeout:", timeout, "seconds.");
  56. executeTasks();
  57. }
  58. // Example usage: Cleanup for 10 seconds
  59. cleanupArtifacts(10);

Add your comment