大学选课课如何快速抢课?

首先中国的大学服务器都是土豆LJ

解决方案1

如果你是进不去或者显示504等错误
可以使用如下

  1. 在F12开发者工具的控制台中,一个函数 refreshUntil200() 被定义和调用。
  2. 函数 refreshUntil200() 这是一个递归函数,它会在每个1秒的时间间隔后重新执行自身。
  3. 在每次执行时,控制台将打印出 "Refreshing page...",然后页面将重新加载。
  4. 接下来,通过创建一个 XMLHttpRequest 对象,发送一个GET请求到当前页面的URL。
  5. 当请求完成时,xhr.onload 事件将被触发。在事件处理程序中,会检查返回的状态码(xhr.status)是否为200。
  6. 如果状态码为200,控制台将输出"Website is now in a 200 OK state.",并停止自动刷新。
  7. 如果状态码不是200,函数将再次调用自身,重新开始刷新和检查状态码的过程。

需要注意的是,此代码适用于在浏览器环境下使用。它利用了XMLHttpRequest对象来进行HTTP请求,并通过调用location.reload()方法来重新加载页面。因此,在控制台中运行代码时,它将刷新当前浏览器标签页并检查状态码是否为200。

代码如下供大家学习

(function refreshUntil200() {
  setTimeout(function() {
    console.log('Refreshing page...');
    location.reload();

    if (window.performance.timing.loadEventEnd > 0) {
      var xhr = new XMLHttpRequest();
      xhr.onload = function() {
        if (xhr.status === 200) {
          console.log('Website is now in a 200 OK state.');
        } else {
          refreshUntil200();
        }
      };
      xhr.open('GET', window.location.href, true);
      xhr.send();
    } else {
      refreshUntil200();
    }
  }, 1000); // 1秒钟后重新加载页面
})();

解决方案二

如果您登陆进去了并且选择好了课程
但是出现错误了不要刷新网页
选择你需要加载的部分右击选择刷新框架

刷新框架我是这样想的如下

如果想要刷新包含框架(iframe)的页面,并检查框架中的内容是否处于200状态,需要对上述代码进行一些修改。

以下是修改后的代码:

(function refreshFramesUntil200() {
  setTimeout(function() {
    console.log('Refreshing frames...');
    var frames = document.querySelectorAll('iframe');

    var isFramesLoaded = true;
    for (var i = 0; i < frames.length; i++) {
      if (frames[i].contentWindow.performance.timing.loadEventEnd === 0) {
        isFramesLoaded = false;
        frames[i].contentWindow.location.reload();
      }
    }

    if (isFramesLoaded) {
      var isMainLoaded = window.performance.timing.loadEventEnd > 0;
      if (isMainLoaded) {
        var xhr = new XMLHttpRequest();
        xhr.onload = function() {
          if (xhr.status === 200) {
            console.log('Website and frames are now in a 200 OK state.');
          } else {
            refreshFramesUntil200();
          }
        };
        xhr.open('GET', window.location.href, true);
        xhr.send();
      } else {
        refreshFramesUntil200();
      }
    } else {
      refreshFramesUntil200();
    }
  }, 1000); // 1秒钟后重新加载页面
})();

这段代码和之前的代码有些相似,但它也考虑了包含框架的情况。代码会获取页面中的所有 iframe 元素,并检查每个框架是否已经加载完成。如果有任何一个框架没有加载完成,则会重新加载该框架。

在所有框架都已加载完成的情况下,代码会检查主页面是否已加载完成。如果主页面已经加载完成,则会发送一个请求来验证页面状态码是否为200。如果状态码为200,则输出 "Website and frames are now in a 200 OK state." 并停止刷新。

请注意,在使用此代码之前,需要确保目标网页中的框架不受跨域策略的限制,否则你将无法访问和刷新框架内容。

posted @ 2023-07-31 08:27  小kBlog  阅读(414)  评论(0编辑  收藏  举报