首页 > 其他分享 >go htmx stream

go htmx stream

时间:2024-10-16 18:34:09浏览次数:8  
标签:target stream htmx detail xhr go evt lastLength

原始地址:https://github.com/alarbada/htmx-stream

window.htmx.defineExtension("stream", {
  onEvent: (name, evt) => {
    if (name === "htmx:beforeRequest") {
      let element = evt.detail.elt;
      if (evt.detail.requestConfig.target) {
        element.__target = evt.detail.requestConfig.target;
        element = evt.detail.requestConfig.target;
      }

      const xhr = evt.detail.xhr;

      let lastLength = 0;
      xhr.addEventListener('readystatechange', () => {
        if (xhr.readyState === 2 || xhr.readyState === 3) {
          const newText = xhr.responseText.substring(lastLength);
          element.__streamedChars = lastLength;
          lastLength = xhr.responseText.length;
          element.innerHTML = newText;
        }
      });
    }
    return true;
  },
  transformResponse: (text, _xhr, elt) => {
    let lastLength = elt.__streamedChars;
    const target = elt.__target;
    if (target) {
      lastLength = target.__streamedChars;
    }

    if (lastLength) {
      const newText = text.substring(lastLength);
      return newText;
    }

    return text;
  }
});

标签:target,stream,htmx,detail,xhr,go,evt,lastLength
From: https://www.cnblogs.com/soarowl/p/18470520

相关文章

  • Gstreamer系列(5):Gstreamer在arm平台(Nano, Orin, Xavier等)使用硬编码对视频进行保存mp
            在工程实践中,通常使用使用英伟达版板卡作为图像处理的控制器,常见的有xavier,TX2,orin,Nano等,这些控制器使用Gstreamer进行硬件编码的插件通常为omxh264enc,nvv4l2h264enc。本文将基于这两个插件进行介绍区别,并给出使用示例本。本系列其他文章有:Gstreamer系......
  • 【Golang】Go 语言中的 time 包详解:全面掌握时间处理与应用
    在Go语言中,time包提供了强大的时间处理功能,适用于各种场景:获取当前时间、格式化和解析时间、计算时间间隔、设置定时器、处理超时等。在开发过程中,熟练掌握time包能够帮助我们轻松处理时间相关的操作,尤其是定时任务、超时控制等非常常见的功能。文章目录一、`time.......
  • MongoDB安装(新版本保姆级教程)
    下载安装包首先进入官网(社区版),在对应页面选择需要安装的版本(这里下载当前适合版本号)DownloadMongoDBCommunityServer|MongoDB 选择在任一磁盘创建空文件夹(不要使用中文路径),解压之后把文件夹内容剪切进去手动创建data和log两个文件夹找到path,打开路径,将自......
  • Go语言中http.Transport的RoundTrip方法请求过滤与拦截技巧与应用
    go语言中http.transport的请求过滤与拦截技巧与应用1.引言在Go语言的http包中,http.Transport作为底层的HTTP传输层实现,提供了强大的功能,可以用于发起HTTP请求。本文将重点介绍如何使用http.Transport实现请求过滤和拦截的技巧及其应用。2.请求过滤2.1过滤请求方法我们可以使用h......
  • 公司网站的logo如何修改?ab网站模板怎么修改?
    修改公司网站的Logo备份当前Logo在进行任何更改之前,请确保备份现有的Logo文件,以防需要恢复。准备新Logo确保新Logo符合网站的设计风格和尺寸要求。通常推荐使用矢量图形(如SVG)或高分辨率的PNG文件以保证不同设备上的显示效果。登录网站后台使用管理员账号登录网......
  • Python+Django基于大数据的家电销售分析系统 echats大屏可视化
    收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我项目介绍近年来,随着互联网的蓬勃发展,企事业单位对信息的管理提出了更高的要求。以传统的管理方式已无法满足现代人们的需求。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,随着各行业的不断发展,家电销售分析......
  • Montgomery Curves and Weierstrass Curves
    WeierstrassCurvesWeierstrassCurves形如\(y^2=x^3+Ax+B\)其中\(4A^3+27B^2≠0\),这种形式称为WeierstrassForm。WeierstrassCurves上的运算在椭圆曲线(此处即为WeierstrassCurves)上,可以定义点之间的加法运算,其满足:单位元\(O\)为无穷远点对于曲线上的两点\(P\)和\(Q\)......
  • 文件同步文件备份软件 Goodsync 序列号
    GoodSync是一种简单和可靠的文件备份和文件同步软件。它会自动分析、同步,并备份您的电子邮件、珍贵的家庭照片、联系人,、MP3歌曲,财务文件和其他重要文件本地-之间的台式机,笔记本电脑,服务器,外部驱动器,以及WindowsMobile设备,以及通过FTP远程,网友的WebDAV等等。该版本已内置序......
  • 敏捷转型中的敏捷实践:Leangoo领歌scrum工具私有部署解决方案
    近年来,敏捷开发逐渐成为企业项目管理中的热门话题。无论是互联网公司还是传统制造业,越来越多的企业通过敏捷方法,提升了项目的交付效率和团队的协作能力。在这个背景下,如何选择合适的敏捷管理工具,并确保其安全性和灵活性,成为了不少企业关注的焦点。 很多团队在讨论敏捷实践时,会......
  • 使用博查Web Search API获取搜索引擎的网页链接和文本摘要,给AI/RAG应用增加联网搜索功
    为什么需要WebSearchAPI?各类AINative应用、RAG应用、AIAgent智能体在开发过程都会遇到联网获取互联网网页信息的需求,此时需要得到原始网页链接以及文本摘要,以用于给pipeline中的大模型作为上下文总结使用。但目前仅国外的搜索引擎例如Bing、Google提供此类WebSearch......