惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
The Last Watchdog
The Last Watchdog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
O
OpenAI News
T
Threat Research - Cisco Blogs
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Palo Alto Networks Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Help Net Security
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
The Blog of Author Tim Ferriss
H
Hackread – Cybersecurity News, Data Breaches, AI and More
S
Securelist
Vercel News
Vercel News
S
Security Affairs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Blog — PlanetScale
Blog — PlanetScale
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
G
Google Developers Blog
T
Tor Project blog
Project Zero
Project Zero
腾讯CDC
Schneier on Security
Schneier on Security
月光博客
月光博客
N
Netflix TechBlog - Medium
AWS News Blog
AWS News Blog
L
LINUX DO - 最新话题
P
Proofpoint News Feed
博客园 - 司徒正美
A
About on SuperTechFans
Latest news
Latest news
Scott Helme
Scott Helme
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
博客园 - 聂微东

任峻宏的小站

Debugging Memory Leaks in a Next.js Application Troubleshooting: Resolving Devise Issue in an API-only Application How to Customize a Right-Click Menu in React Using ActionCable and React to Create a Simple Chat App 纪念左耳朵耗子 - 任峻宏的小站 Using SSE to Implement ChatGPT in Rails Refresh Myself - 任峻宏的小站 战痘 - 任峻宏的小站 逆向的能量——生活需要批评者 - 任峻宏的小站 人活着必须要有目标 - 任峻宏的小站 《第一人称单数》读书笔记 - 任峻宏的小站 卸载英雄联盟 - 任峻宏的小站 我的 2021 年总结 - 任峻宏的小站 记我的爷爷 - 任峻宏的小站 Migrate from Webpacker to Vite 从入门到放弃 《人生算法》读书笔记 - 任峻宏的小站 《不拘一格》读书笔记 - 任峻宏的小站 我为什么很少写博客 - 任峻宏的小站 我的2020年总结 - 任峻宏的小站 如何避免冲动消费? - 任峻宏的小站 《不能不去爱的两件事》读书笔记 - 任峻宏的小站 记一次搬家 - 任峻宏的小站 My blog V3.0 has been published! 解决服务器上运行 bundle install 时 killed 的问题 解决生产环境不能发送邮件的问题 - 任峻宏的小站 解决内存泄漏记录 - 任峻宏的小站 勿忘初心 - 任峻宏的小站 关于 RSpec 的一点方法总结 - 任峻宏的小站 Nginx 添加 SSL 支持 - 任峻宏的小站 Nginx 中进行重定向配置 - 任峻宏的小站 记我的第二次部署 - 任峻宏的小站 写在“毕业”之际 - 任峻宏的小站 JS 简单实现弹出层效果 - 任峻宏的小站 速递易工作总结及感想 - 任峻宏的小站 在 Aliyun ECS 上用 Nginx + Passenger 部署 Rails 应用时安装 Passenger 的问题 [译] Common Rails Idioms that Kill Database Performance Git 常用操作总结 - 任峻宏的小站 [译] Terminal 功夫——方便开发者的实用技巧 - 任峻宏的小站 实例方法与类方法 - 任峻宏的小站 各种报错解决集合 - 任峻宏的小站
使用 AJAX 重载部分页面 - 任峻宏的小站
任峻宏 · 2017-06-09 · via 任峻宏的小站

场景

实现点击按钮后,重新加载部分页面而不刷新整个页面。

方法一

1.jQuery:

$(function(){
   $('body').on("click", ".ClassNameOfButton", function(){  
     $.ajax({
       url: "home/refresh_part"
     })
   }) 
});

注意这里jquery的事件如果用$('.class').click(function(){})可能会造成刷新后页面的js不能运行,原因是这样写只对当前页面的element有效,所以reload之后的元素就不适用了;而.on()可以适用于新创建的元素。

2.在view中,把要刷新的部分提取成partial,然后加上div:

<div class="reload"><%= render 'PartialName' %></div>

3.写一个js的template(refresh_part.js.erb):

$(".reload").html("<%= j(render 'PartialName') %>");

这里的 j() 是 escape_javascript() 的alias, 所以也可以写成:

$(".reload").html("<%= escape_javascript(render 'PartialName') %>");

4.最后写上路由:

get '/home/refresh_part', to: 'home#refresh_part'

方法二

直接用jQuery来完成:

1.jQuery:

$(function(){
  $('body').on("click", ".ClassNameOfButton", function(){
    $('.reload').load('/home/refresh_part');
  })
}

2.同上;

3.在对应的action里面render partial:

(in home_controller.rb)

def refresh_part
    render partial: "PartialName"
end

这种方法不需要新定义路由,似乎比上面个方法还简单些。

注意事项

参考文档,涉及到表单的话,一定要加上data-remote: true,加了之后,the form will be submitted by Ajax rather than by the browser's normal submit mechanism. Whenever you add remote: true you are telling your form make a POST request via JS instead of HTML. 否则会出现 missing template 之类的错误

相关资料

RailsCast #240

https://stackoverflow.com/questions/13988556/is-it-possible-to-refresh-partial-frequently-using-ajax/44453659#44453659

https://stackoverflow.com/questions/8594408/reload-javascript-file-after-an-ajax-request