This example uses d3.behavior.zoom with pre-projected geometry for map panning and zooming, in conjunction with dynamic simplification and viewport clipping. This approach is quite fast, but more work to implement than an SVG transform.
https://d3js.org/d3.v3.min.js
https://d3js.org/topojson.v1.min.js