当前位置: 首页 > news >正文

给百度做网站的公司江苏两学一做网站

给百度做网站的公司,江苏两学一做网站,海南响应式网站建设哪里好,什么是企业网站Rails 3#xff1a;提高Ajax应用速度 http://developer.51cto.com 2011-05-18 09:45 Stefan Siebel 51CTO 我要评论(0)我建立了一个列表网站#xff0c;ListKungFo#xff0c;其中大量使用了Ajax#xff0c;目前为止网站运行非常良好。而过去两周里#xff0c;我一直在… Rails 3提高Ajax应用速度 http://developer.51cto.com  2011-05-18 09:45  Stefan Siebel  51CTO  我要评论(0) 我建立了一个列表网站ListKungFo其中大量使用了Ajax目前为止网站运行非常良好。而过去两周里我一直在寻找一些能够进一步提高UI性能的方法现在写出来和大家分享。 【51CTO.com 5月18日外电头条】而过去两周里我一直在寻找一些能够进一步提高UI性能的方法得到的成果主要是返回正确的HTTP状态代码优化浏览器的缓存功能。 51CTO推荐专题Ruby On Rails开发教程 具体地说会返回两种状态代码 ◆ 返回200-“Ok”这告知浏览器服务器能够成功的对请求进行响应。响应包含了从服务器返回的HTTP载荷中的数据。 ◆ 返回304-“Not modified”表示未修改这告知浏览器所发出请求中的数据并没有改变因此可以从缓存中装载数据。这种情况下响应不包含HTTP载荷。 既然“Not modified”消息包含的数据要少得多(没有内容只有头)这样你就最好返回到浏览器这里当然你需要先确保浏览器的缓存中已经存在数据了。 在我的应用中我发现服务器返回的200-响应比304-响应要多得多。这造成了两方面的问题 ◆ 不得不传输比所需的更多的数据 ◆ UI不得不处理更多数据 这两方面出现的问题都会让应用的速度变慢。虽然只是慢了一点但在UI端还是足够让人察觉到了。幸运的是你只需要对Rails应用做几个小修改就能获得应有的效果。 1在GET方法中使用stale?语句 def show    list_item  list.list_items.find( params[ :id ] )    if stale?( :etag  list_item, :last_modified  list_item.updated_at.utc, :public  true )      respond_with( list_item )    end  end  stale?语句会通过响应发送回一个etag与一个last_modified日期。如果下一个请求是相同的URL那么浏览器会把这个etag和last_modified日期发送给服务器。然后stale?方法会对这两个参数进行分析如果内容相同则返回304如果出现参数值不同那么说明有新的内容这样返回200。 想知道更详细的stale?方法的用法可以查阅Rails的API文档以及阅读Rails的手册。 2 确保浏览器对每次请求都接收新的数据 上面的修改完成后发生了一些有趣的事情。在很短的时间内相同的Ajax行为被触发了许多次而浏览器并没有向服务器发送一次请求而都是从缓存中取得数据。虽然显然让UI变得快了很多但这并不完全是我所想要的。我的目标是获得最佳的性能同时还要保证屏幕上出现正确与最新的数据。 浏览器的缓冲行为受到了三个HTTP头的flag状态的影响cache-controll、pragma和expires 想要关闭浏览器的缓存功能你可以发送下面的代码 def set_cache_buster      response.headers[Cache-Control]  no-cache, no-store, max-age0, must-revalidate      response.headers[Pragma]  no-cache      response.headers[Expires]  Fri, 01 Jan 1990 00:00:00 GMT    end 然而我想要做的是这样 def set_must_revalidate      response.headers[Cache-Control]  must-revalidate    end 因为这么做可以让浏览器在每次请求时检查新加入的和被更新的数据我在我的application_controller.rb中添加了这个方法并且在before_filter控制器中加以调用。 3在返回集合的GET方法中使用stale?(例如索引) 上面的stale?例子是从控制器的show方法中取出的这是网络上非常通用的做法。如果想要使用这个方法返回一个集合比如一个典型的控制器索引方法那么需要想办法找出当前的集合和上次请求中的是否相同。 我的ListKungFu网站有一个类型列表List其中包含很多ListItem。每个ListItem从属于一个List。为了在list_items_controller中找出某个ListItem集合是否有变化我添加了名为list.updated_at的时间戳每次写入操作时都会更新。 在ListItem.rb中 class ListItem  ActiveRecord::Base   belongs_to :list    after_save :update_list    after_destroy :update_list       # [...]       def update_list      self.list.updated_at  Time.now      self.list.save    end  end 这样list_items_controller的索引方法看上去就像这样 def index      list_items  list.list_items         if stale?( :last_modified  list.updated_at )        respond_with( list_items )      end    end 如果不使用updated_at字段我也可以给List模型加上一个version字段但这样看起来没什么必要。如果这个模型不适合你的应用那么你需要找到另一种方法检查集合是否被修改了比如计算一下集合中所有对象的校验和这也能行得通。 Rails 3.0 主要改进内容 1. New Active Record query engine 示例代码 users  User.where(:name  david).limit(20)  users.where(age  29)  # SELECT * FROM users  # WHERE name  david AND age  29   # ORDER BY name  # LIMIT 20  users.order(:name).each { |user| puts user.name }  2. New router for Action Controller 示例代码 resources :people do    resource :avatar     collection do      get :winners, :losers    end  end   # /sd34fgh/rooms  scope :token, :token  /\w{5,5}/ do    resources :rooms  end   # /descriptions  # /pl/descriptions  # /en/descriptions  scope (:locale), :locale  /en|pl/ do    resources :descriptions    root :to  projects#index  end 3. New Action Mailer 示例代码 class Notifier  ActionMailer::Base   default :from      Highrise system#{APPLICATION_DOMAIN}      def new_project(digest, project, person)      digest, project, person  digest, project, person       attachments[digest.pdf]  digest.to_pdf      attachments[logo.jpg]    File.read(project.logo_path)       mail(        :subject  Your digest for #{project.name},        :to  person.email_address_with_name      ) do |format|        format.text { render :text  Something texty }        format.html { render :text  Something itextyi }      end    end  end 4. Manage dependencies with Bundler 5. 默认启用跨站点工具 XSS 保护 6. 告别字符编码问题困扰 7. Active Model: Validations, callbacks, etc for all models 8. 官方的插件 API 9. 内部重构 10. Agnosticism with jQuery, rSpec, and Data Mapper 11. 文档完善  Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用到控制器中的访问请求和反馈到封装数据库的模型Rails 为你提供一个纯Ruby的开发环境。发布网站时你只需要一个数据库和一个网络服务器即可。 【编辑推荐】 程序员的另类境界:Rails创始人驾保时捷参加职业赛在Nginx上运行Ruby on Rails解读Ruby on Rails的成功秘籍Twitter从Rails迁移到了Java基于Ruby On Rails开发高品质Web应用转载于:https://www.cnblogs.com/ToDoToTry/archive/2011/10/11/2207247.html
http://www.pierceye.com/news/781624/

相关文章:

  • 没学过计算机开始学做网站给别人做网站收多少钱
  • 网站建设的功能都需要有哪些方面大气一点的公司名字
  • 湘潭做网站价格问下磐石网络价格网站
  • 网站备案后可以更换域名吗2345网页游戏
  • 登录浏览器是建设银行移动门户网站广州专业做外贸网站
  • 思明区建设局网站微信 网页版
  • 淘宝客怎么做自己的网站搜索引擎营销案例分析题
  • 给女朋友做网站的素材友情链接是什么意思
  • 成都微信网站建设多少钱南平抖音搜索排名seo软件
  • 做外贸用哪些网站成都房地产开发商排名
  • 网站建设实施计划包括网页关键词优化
  • 建企业网站怎么做单页面网站源码
  • 儿童网站模板微信网站下载
  • 建设网站的市场背景搭建本地网站做色流
  • 湖南岳阳网站建设公司黄页顺企网宾馆在什么网站做推广效果好
  • 做外贸网站 怎么收钱网站自适应手机怎么
  • wordpress分只显示标题网站内容优化关键词布局
  • 校园云网站建设怎么做网站自动响应
  • 怎么做扫码进入网站北京seo计费
  • 网站备案 2016如何找网站
  • 网站开发客户挖掘做网站没签合同
  • 适合大学生做的兼职网站中国企业网信息查询系统
  • 淘宝网站的建设与运营设计思路做网站商铺模板
  • 网站优秀设计方案中国网站制作企业排行榜
  • 南昌建设局网站查询塔吊证怎么查福州seo网站建设
  • 机关内网站建设方案书给人做传销网站
  • 厦门有什么网站制作公司邢台太行中学简介
  • 天合建设集团网站做一个网站得做多少个页面
  • 做衣服接订单的网站网站用哪些系统做的
  • 爱美刻在线制作网站罗村网站制作公司